fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n; cin >> n; int arr[n]; int k;
  6. cin >> k;
  7. for(int i = 0; i < n; i++)
  8. cin >> arr[i];
  9.  
  10. int sum = 0;
  11. unordered_map<int, int> hash;
  12. hash[0] = -1;
  13. int maxl = INT_MIN;
  14. for(int i = 0; i < n; i++){
  15. sum += arr[i];
  16. if(hash.find(sum-k) != hash.end()){
  17. int len = i - hash[sum-k];
  18. maxl = max(maxl, len);
  19. }
  20. hash[sum] = i;
  21. }
  22. hash.clear(); sum = 0; int cnt = 0;
  23. hash[0] = -1;
  24. for(int i = 0; i < n; i++){
  25. sum += arr[i];
  26. if(hash.find(sum-k) != hash.end()){
  27. int len = i - hash[sum-k];
  28. if(len == maxl)
  29. cnt++;
  30. }
  31. hash[sum] = i;
  32. }
  33. cout << cnt;
  34. return 0;
  35. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
1