fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int arr[]= {1,0,1,2,10,5};
  6. int n=sizeof(arr)/sizeof(arr[0]);
  7. int sum=3;
  8. int count=0;
  9. int currSum=0;
  10. unordered_map<int, int> mp;
  11. //for such subarray questions always insert mp[0]=1 first
  12. mp[0]=1;
  13. for(int j=0;j<n;j++){
  14. currSum+=arr[j];
  15. if(mp.find(currSum-sum)!=mp.end())
  16. count=count+mp[currSum-sum];
  17. mp[currSum]++;
  18. }
  19. cout<<count;
  20. return 0;
  21. }
  22.  
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
2