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. unordered_map<int,int> prefixSum;
  15.  
  16. int sum = 0;
  17.  
  18. int longest = 0;
  19.  
  20. for(int i=0; i<n; i++){
  21. sum += numbers[i];
  22.  
  23. if(prefixSum.find(sum) != prefixSum.end()){
  24. int index = prefixSum[sum];
  25.  
  26. longest = max(longest, i - index);
  27. }
  28.  
  29. else{
  30. prefixSum[sum] = i;
  31. }
  32.  
  33. }
  34.  
  35. cout<<longest;
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 5320KB
stdin
3
1 0 3
stdout
1