#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;
}
}
return 0;
}
I2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBhcnJbXT17MSwgMiwgMywgNCwgNSwgLTEsIDZ9OwoJaW50IGs9OTsKCWludCBuPXNpemVvZihhcnIpL3NpemVvZihhcnJbMF0pOwoJaW50IHN1bT0wOwoJaW50IG1heGk9MDsKCQoJdW5vcmRlcmVkX21hcDxpbnQsaW50Pm07CgltWzBdPTA7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlzdW0rPWFycltpXTsKCQlpbnQgdW49c3VtLWs7CgkJaWYobS5maW5kKHVuKSE9bS5lbmQoKSl7CgkJCWludCBkaXN0PWktbVt1bl0rMTsKCQkJaWYoZGlzdD5tYXhpKXsKCQkJCW1heGk9ZGlzdDsKCQkJfQoJCQkKCQl9CgkJaWYobS5maW5kKHN1bSk9PW0uZW5kKCkpewoJCQltW3N1bV09aTsKCQl9Cgl9CglyZXR1cm4gMDsKfQ==