fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. main(){
  5. int n,k;
  6. cin>>n>>k;
  7. vector<int>arr(n);
  8. for(auto &it:arr)cin>>it;
  9. unordered_map<int, int> prefixSums;
  10.  
  11. int res = 0;
  12. int currSum = 0;
  13.  
  14. for (int i = 0; i < arr.size(); i++) {
  15. currSum += arr[i];
  16. if (currSum == k)
  17. res++;
  18. if (prefixSums.find(currSum - k) != prefixSums.end())
  19. res += prefixSums[currSum - k];
  20.  
  21. // Add currSum to the set of prefix sums.
  22. prefixSums[currSum]++;
  23. }
  24. cout<<res<<"\n";
  25. }
Success #stdin #stdout 0.01s 5288KB
stdin
4 5
3 2 3 2
stdout
3