这个题目暴力是不可能的了,但是我们得善于发现题目中的规律,这个题目中的式子是不是可以化简,1/x+1/y也就是说什么只有1,2才可以满足式子不为0,所以只要找1,2的个数就好了,最后特判2的情况有个式子求和即可,1的情况直接找所有情况减1,
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
int main(){
int n;
ll a[100005];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lld",&a[i]);
}
sort(a,a+n);
int c1=0,c2=0,c3=0;
for(int i=0;i<n;i++){
if(a[i]==1){
c1++;
}
else if(a[i]==2){
c2++;
}
else c3++;
}
//int ans=0;
cout<<c1*(n-1)+c2*(c2-1)/2;
return 0;
}