这题有啥坑吗,一直调不过去,还是说思路就假了?
#include <iostream>
#include <map>
using namespace std;
#define int long long
signed main(){
int t;
cin >> t;
while(t--){
map<int,int> m;
int n,a[200010];
cin >> n;
int ans = 0;
for(int i = 1;i <= n;i++){
cin >> a[i];
ans += a[i];
}
if(ans == 0){
cout << n * (n-1) / 2 << endl;
continue;
}
if(ans % n != 0){
cout << 0 << endl;
continue;
}
int sum = ans;
ans /= n;
for(int i = 1;i <= n;i++){
int c = a[i] - ans;
m[ans - c]++;
}
int t2 = 0;
for(int i = 1;i <= n;i++){
t2 += m[a[i]];
if(a[i] == ans)t2--;
}
cout << t2 / 2 << endl;
}
return 0;
}