#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;
int mini=1e9;
int M_count=0;
int m_count=0;
unordered_map<int,int>m;
unordered_map<int,int>q;
m[0]=-1;
for(int i=0;i<n;i++){
sum+=arr[i];
int un=sum-k;
if(m.find(un)!=m.end()){
int x=m[un]+1;
int dist=i-x+1;
if(dist>maxi){
maxi=dist;
M_count++;
}
}
if(q.find(un)!=q.end()){
int y=q[un]+1;
int dist=i-y+1;
if(dist<mini){
mini=dist;
m_count++;
}
}
if(m.find(sum)==m.end()){
m[sum]=i;
}
q[sum]=i;
}
cout<<maxi<<"-"<<M_count<<" "<<mini<<"-"<<m_count<<endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglpbnQgYXJyW109ezEsIDIsIDMsIDQsIDUsIC0xLCA2fTsKCWludCBrPTk7CglpbnQgbj1zaXplb2YoYXJyKS9zaXplb2YoYXJyWzBdKTsKCWludCBzdW09MDsKCWludCBtYXhpPTA7CglpbnQgbWluaT0xZTk7CglpbnQgTV9jb3VudD0wOwoJaW50IG1fY291bnQ9MDsKIAoJdW5vcmRlcmVkX21hcDxpbnQsaW50Pm07Cgl1bm9yZGVyZWRfbWFwPGludCxpbnQ+cTsKCW1bMF09LTE7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlzdW0rPWFycltpXTsKCQlpbnQgdW49c3VtLWs7CgkJaWYobS5maW5kKHVuKSE9bS5lbmQoKSl7CgkJCWludCB4PW1bdW5dKzE7CgkJCWludCBkaXN0PWkteCsxOwoJCQlpZihkaXN0Pm1heGkpewoJCQkJbWF4aT1kaXN0OwoJCQkJTV9jb3VudCsrOwoJCQl9CiAKCQl9CgkJaWYocS5maW5kKHVuKSE9cS5lbmQoKSl7CgkJCWludCB5PXFbdW5dKzE7CgkJCWludCBkaXN0PWkteSsxOwoJCQlpZihkaXN0PG1pbmkpewoJCQkJbWluaT1kaXN0OwoJCQkJbV9jb3VudCsrOwoJCQl9CiAKCQl9CgkJaWYobS5maW5kKHN1bSk9PW0uZW5kKCkpewoJCQltW3N1bV09aTsKCQl9CgkJcVtzdW1dPWk7Cgl9Cgljb3V0PDxtYXhpPDwiLSI8PE1fY291bnQ8PCIgIjw8bWluaTw8Ii0iPDxtX2NvdW50PDxlbmRsOwoJcmV0dXJuIDA7Cn0=