fork download
  1. #include <iostream>
  2. #include <map>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. long long n,x;
  8. cin>>n>>x;
  9.  
  10. long long a[n];
  11. for(long long i=0;i<n;i++)
  12. {
  13. cin>>a[i];
  14. }
  15.  
  16. long long pref[n+1]={0};
  17. long long sum=0;
  18. map<long long,long long> Map;
  19. long long count1=0;
  20. Map[0]=1;
  21. for(long long i=1;i<=n;i++)
  22. {
  23. sum+=a[i-1];
  24. pref[i]=sum;
  25. if(Map.count(pref[i] - x) > 0)
  26. {
  27. count1+=Map[pref[i]-x];
  28. }
  29. if(Map.count(pref[i]) <= 0)
  30. {
  31. Map[pref[i]]=1;
  32. }
  33. else
  34. {
  35. Map[pref[i]]++;
  36. }
  37.  
  38. }
  39.  
  40. cout<<count1<<endl;
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0.01s 5284KB
stdin
100 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
stdout
5050