#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, i, m, j, sum, cnt, k;
cin>>n;
int a;
for(i=0;i<n;i++){
cin>>m;
cnt=0;
map<int,int>mp;
for(j=0,sum=0;j<m;j++){
cin>>a;
sum+=a;
mp.insert(pair<int ,int>(a,0));
mp[a]++;
}
if((2*sum)%m!=0)cout<<0<<endl;
else {
k=sum*2/m;
for(auto[x,y]:mp){
int z=k-x;
if(mp.count(z)){
if(k-x==x){
cnt+=(y-1)*y;
}
else cnt+=y*mp[z];
}}
cout<<cnt/2<<endl;
}
}
return 0;
}
以上是代码,不确定有没有语法错误
主要是问auto[x,y]:mp这是啥?
只知道这个auto[x]:mp
还有一个问题
mp.insert(pair<int ,int>(a,0));
这个要不要?