class Solution {
public:
int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {
unordered_map<int, int>hash1;
unordered_map<int, int>hash2;
int size=(int)A.size();
if(!size)
return 0;
for(int i=0;i<=size-1;i++)
for(int j=0;j<=size-1;j++)
hash1[A[i]+B[j]]++;
for(int i=0;i<=size-1;i++)
for(int j=0;j<=size-1;j++)
hash2[C[i]+D[j]]++;
int res=0;
for(auto n:hash1)
res+=n.second*hash2[-n.first];
return res;
}
};