【C++14及以上 AC代码】
#include<bits/stdc++.h>
using namespace std;
int n;
map<long long,int>ab,cd;
int a[505],b[505],c[505],d[505];
int main(){
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
for(int j=0;j<n;j++){
ab[a[j]+b[i]]++;
}
}
for(int i=0;i<n;i++){
cin>>c[i];
}
for(int i=0;i<n;i++){
cin>>d[i];
for(int j=0;j<n;j++){
cd[c[j]+d[i]]++;
}
}
long long sum=0;
for(auto i:ab){
if(cd.count(-i.first)){
sum+=i.second*cd[-i.first];
}
}cout<<sum;
return 0;
}
【C++14以下 AC代码】
#include<bits/stdc++.h>
using namespace std;
int n;
map<long long,int>ab,cd;
int a[505],b[505],c[505],d[505];
int main(){
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
for(int j=0;j<n;j++){
ab[a[j]+b[i]]++;
}
}
for(int i=0;i<n;i++){
cin>>c[i];
}
for(int i=0;i<n;i++){
cin>>d[i];
for(int j=0;j<n;j++){
cd[c[j]+d[i]]++;
}
}
long long sum=0;
for(map<long long,int>::iterator i=ab.begin();i!=ab.end();i++){
if(cd.count(-i->first)){
sum+=i->second*cd[-i->first];
}
}cout<<sum;
return 0;
}