#include<bits/stdc++.h>
#include <unordered_map>
using namespace std;
int main() {
// your code goes here
int arr[]={1, 2, 3, 4, 5, -1, 6};
int k=9;
int n=sizeof(arr)/sizeof(arr[0]);
int sum=0;
int maxi=0;
unordered_map<int,int>m;
m[0]=0;
for(int i=0;i<n;i++){
sum+=arr[i];
int un=sum-k;
if(m.find(un)!=m.end()){
int dist=i-m[un]+1;
if(dist>maxi){
maxi=dist;
}
}
if(m.find(sum)==m.end()){
m[sum]=i;
}
}
cout<<maxi;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglpbnQgYXJyW109ezEsIDIsIDMsIDQsIDUsIC0xLCA2fTsKCWludCBrPTk7CglpbnQgbj1zaXplb2YoYXJyKS9zaXplb2YoYXJyWzBdKTsKCWludCBzdW09MDsKCWludCBtYXhpPTA7CiAKCXVub3JkZXJlZF9tYXA8aW50LGludD5tOwoJbVswXT0wOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJc3VtKz1hcnJbaV07CgkJaW50IHVuPXN1bS1rOwoJCWlmKG0uZmluZCh1bikhPW0uZW5kKCkpewoJCQlpbnQgZGlzdD1pLW1bdW5dKzE7CgkJCWlmKGRpc3Q+bWF4aSl7CgkJCQltYXhpPWRpc3Q7CgkJCX0KIAoJCX0KCQlpZihtLmZpbmQoc3VtKT09bS5lbmQoKSl7CgkJCW1bc3VtXT1pOwoJCX0KCX0KCWNvdXQ8PG1heGk7CglyZXR1cm4gMDsKfQ==