不知道哪里写错了
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int v1[500005],v2[500005];
int q,n;
int main(){
cin>>q;
while(q--){
memset(v1,0,sizeof(v1));
memset(v2,0,sizeof(v2));
memset(a,0,sizeof(a));
cin>>n;
long long seg = 0;
for(int i = 1;i<=n;i++){
cin>>a[i];
seg+=a[i];
}
// cout<<seg<<' ';
if(seg%n != 0){
cout<<"No"<<endl;
continue;
}
bool f = 0;
for(int i = 1; i <= n; i++){
if(a[i] == seg/n){
f=1;break;
}
a[i]-=seg/n;
}
if(f || n > sqrt(n)){
cout<<"Yes"<<endl;
continue;
}
sort(a+1,a+1+n);
int tot = 0;
int i = 1;
while(a[i]<0){
tot += abs(a[i]);
for(int j = seg; j >= 1; j--){
if(v1[j]) v1[j+abs(a[i])]=1;
}
v1[abs(a[i])] = 1;
i++;
}
while(i<=n){
if(a[i] == 0){
f = 1;
break;
}
for(int j = seg; j >= 1; j--){
if(v2[j]) v2[j+a[i]]=1;
if(v1[j] == 1 && v2[j] == 1 && j != tot){//cout<<j<<' ';
f=1;
break;
}
}
v2[a[i]]=1;
i++;
if(f)break;
}
//for(int i = 1; i<= seg;i++)cout<<v1[i]<<' ';cout<<endl;
//for(int i = 1; i<= seg;i++)cout<<v2[i]<<' ';cout<<endl;
if(f){
cout<<"Yes"<<endl;
}
else cout<<"No"<<endl;
}
return 0;
}