fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n;
  6. cin>>n;
  7.  
  8. vector<int> numbers(n);
  9.  
  10. for(auto& number: numbers){
  11. cin>>number;
  12. }
  13.  
  14. int answer = 0;
  15.  
  16. unordered_map<int,int> prefixSum;
  17.  
  18. prefixSum[0] = 1;
  19.  
  20. int sum = 0;
  21.  
  22. for(int i=0; i<n; i++){
  23. sum += numbers[i];
  24.  
  25.  
  26. if(prefixSum.find(sum - i - 1) != prefixSum.end()){
  27. answer+=prefixSum[sum-i-1];
  28. }
  29.  
  30. prefixSum[sum-i-1]++;
  31. }
  32.  
  33. cout << answer;
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 5324KB
stdin
5
1 2 3 4 1
stdout
2