#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
vector<int> numbers(n);
for(auto& number: numbers){
cin>>number;
}
unordered_map<int,int> prefixSum;
int sum = 0;
int longest = 0;
for(int i=0; i<n; i++){
sum += numbers[i];
if(prefixSum.find(sum) != prefixSum.end()){
int index = prefixSum[sum];
longest = max(longest, i - index);
}
else{
prefixSum[sum] = i;
}
}
cout<<longest;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuOwoJY2luPj5uOwoJCgl2ZWN0b3I8aW50PiBudW1iZXJzKG4pOwoJCglmb3IoYXV0byYgbnVtYmVyOiBudW1iZXJzKXsKCQljaW4+Pm51bWJlcjsKCX0KCQoJdW5vcmRlcmVkX21hcDxpbnQsaW50PiBwcmVmaXhTdW07CgkKCWludCBzdW0gPSAwOwoJCglpbnQgbG9uZ2VzdCA9IDA7CgkKCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJc3VtICs9IG51bWJlcnNbaV07CgkJCgkJaWYocHJlZml4U3VtLmZpbmQoc3VtKSAhPSBwcmVmaXhTdW0uZW5kKCkpewoJCQlpbnQgaW5kZXggPSBwcmVmaXhTdW1bc3VtXTsKCQkJCgkJCWxvbmdlc3QgPSBtYXgobG9uZ2VzdCwgaSAtIGluZGV4KTsKCQl9CgkJCgkJZWxzZXsKCQkJcHJlZml4U3VtW3N1bV0gPSBpOwoJCX0KCQkKCX0KCQoJY291dDw8bG9uZ2VzdDsKCQoJcmV0dXJuIDA7Cn0=