fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int n;
  7. cin>>n;
  8. vector<int>a(n);
  9. int sum=0;
  10. for(int i=0;i<n;i++) {cin>>a[i];sum+=a[i];}
  11. // if(sum&1) return false;
  12. // int cnt=0;
  13. // int x=a[0];
  14. // sum-=x;
  15. // else{
  16. // for(int i=1;i<n-1;i++){
  17. // if(x==sum) cnt++;
  18. // sum-=a[i];
  19. // x+=a[i];
  20. // }
  21. // }
  22. unordered_map<int,int>freq;
  23. int pref=0;
  24. for(int i=0;i<n-1;i++){
  25. pref+=a[i];
  26. freq[pref]++;
  27. }
  28. int cnt=0;
  29. if(sum%3!=0) return false;
  30.  
  31. else{
  32. int y=sum/3;
  33. int suff=a[n-1];
  34.  
  35. for(int i=n-2;i>=2;i--){
  36. if(suff==y && pref==2*y){
  37. cnt+=freq[y];
  38. }
  39. suff+=a[i];
  40. freq[pref]--;
  41. pref-=a[i];
  42. }
  43. }
  44. cout<<cnt<<endl;
  45.  
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 5316KB
stdin
4
0 0 0 0
stdout
3