#include <iostream>
#include<vector>
#include<unordered_map>
using namespace std;
int main() {
vector<int> arr={15,-2,2,-8,1,7,10};
unordered_map<int,int> m;
int longest=0;
int sum=0;
for(int i=0;i<arr.size();i++) {
sum+=arr[i];
if(arr[i]==0) {
longest=i+1;
}
if(m.find(sum)!=m.end()) {
longest=max(longest,i-m[sum]);
}
else {
m[sum]=i;
}
}
cout<<longest;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+IGFycj17MTUsLTIsMiwtOCwxLDcsMTB9OwoJCgl1bm9yZGVyZWRfbWFwPGludCxpbnQ+IG07CglpbnQgbG9uZ2VzdD0wOwoJaW50IHN1bT0wOwoJCglmb3IoaW50IGk9MDtpPGFyci5zaXplKCk7aSsrKSB7CgkJc3VtKz1hcnJbaV07CgkJCgkJaWYoYXJyW2ldPT0wKSB7CgkJCWxvbmdlc3Q9aSsxOwoJCX0KCQkKCQlpZihtLmZpbmQoc3VtKSE9bS5lbmQoKSkgewoJCQlsb25nZXN0PW1heChsb25nZXN0LGktbVtzdW1dKTsKCQl9CgkJZWxzZSB7CgkJCW1bc3VtXT1pOwoJCX0KCX0KCWNvdXQ8PGxvbmdlc3Q7CglyZXR1cm4gMDsKfQ==