有 4 个序列,从每个序列中选一个数,求有多少种可能使得 4个数的和为0
const int N=4e3+5;
int n,m,t;
int i,j,k;
int a[N],b[N],c[N],d[N];
int cd[N*N];
int main()
{
//IOS;
while(~sd(n)){
for(i=0;i<n;i++){
sdd(a[i],b[i]);
sdd(c[i],d[i]);
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cd[i*n+j]=c[i]+d[j];
}
}
sort(cd,cd+n*n);
ll ans=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
int cur=-(a[i]+b[j]);
ans+=upper_bound(cd,cd+n*n,cur)-lower_bound(cd,cd+n*n,cur);
}
}
pld(ans);
}
//PAUSE;
return 0;
}