fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. unordered_map<int,int>mpp;
  5.  
  6. int solve(vector<int>& a){
  7. int n = a.size();
  8.  
  9. for(int i=3;i<n;i++){
  10. mpp[a[i]]++;
  11. }
  12.  
  13. int ans = 0;
  14. for(int i=0;i<n-3;i++){
  15. for(int j=i+1;j<n-2;j++){
  16. int k=j+1;
  17. for(;k<n-1;k++){
  18. int sum = -(a[i]+a[j]+a[k]);
  19. ans += mpp[sum];
  20. mpp[a[k+1]]--;
  21. }
  22. for(int z=k+2;z<n;z++){
  23. mpp[a[z]]++;
  24. }
  25. }
  26. }
  27. return ans;
  28. }
  29.  
  30. int main() {
  31. int n;
  32. cin>>n;
  33. vector<int>a(n);
  34. for(int i=0;i<n;i++){
  35. cin>>a[i];
  36. }
  37. cout<<solve(a);
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 5288KB
stdin
7
1 2 3 4 -1 -2 -2
stdout
-1