#include<bits/stdc++.h>
using namespace std;
void subarray_problem(vector<int> &arr,int k)
{
int mini = 1e9;
int sum = 0;
unordered_map<int,int> mpp;
mpp[0] = -1;
for(int i = 0;i<arr.size();i++)
{
sum += arr[i];
if(mpp.find(sum-k) != mpp.end())
{
mini = max(mini,i-mpp[sum-k]);
}
mpp[sum] = i;
}
if(mini != 1e9)
{
int i = 0,cnt = 0;
int j =0;
int s = 0;
int k1 = mini;
while(j<arr.size())
{
s += arr[j];
if(j-i+1<k1)
{
j++;
}
else if(j-i+1==k1)
{
if(s==k)
{
cnt++;
}
s -= arr[i];
i++;
j++;
}
}
cout<<cnt;
}
}
int main() {
vector<int> arr = { 10,5,2,7,1,9,8,7 };
int k = 15;
subarray_problem(arr,k);
cout<<"hi";
// cout<<result;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc3ViYXJyYXlfcHJvYmxlbSh2ZWN0b3I8aW50PiAmYXJyLGludCBrKQp7CiAgICBpbnQgbWluaSA9IDFlOTsKICAgIGludCBzdW0gPSAwOwogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50PiBtcHA7CiAgICBtcHBbMF0gPSAtMTsKICAgIGZvcihpbnQgaSA9IDA7aTxhcnIuc2l6ZSgpO2krKykKICAgIHsKICAgICAgICBzdW0gKz0gYXJyW2ldOwogICAgICAgIGlmKG1wcC5maW5kKHN1bS1rKSAhPSBtcHAuZW5kKCkpCiAgICAgICAgewogICAgICAgICAgICBtaW5pID0gbWF4KG1pbmksaS1tcHBbc3VtLWtdKTsKICAgICAgICB9CiAgICAgICAgbXBwW3N1bV0gPSBpOwogICAgfQogICAgaWYobWluaSAhPSAxZTkpCiAgICB7CiAgICAgICAgaW50IGkgPSAwLGNudCA9IDA7CiAgICAgICAgaW50IGogPTA7CiAgICAgICAgaW50IHMgPSAwOwogICAgICAgIGludCBrMSA9IG1pbmk7CiAgICAgICAgd2hpbGUoajxhcnIuc2l6ZSgpKQogICAgICAgIHsKICAgICAgICAgICAgcyArPSBhcnJbal07CiAgICAgICAgICAgIGlmKGotaSsxPGsxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoai1pKzE9PWsxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihzPT1rKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcyAtPSBhcnJbaV07CiAgICAgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0PDxjbnQ7CiAgICB9Cn0KCmludCBtYWluKCkgewoJdmVjdG9yPGludD4gYXJyID0geyAxMCw1LDIsNywxLDksOCw3IH07CiAgICBpbnQgayA9IDE1OwogCiAgICBzdWJhcnJheV9wcm9ibGVtKGFycixrKTsKICAgIGNvdXQ8PCJoaSI7CiAgICAvLyBjb3V0PDxyZXN1bHQ7CglyZXR1cm4gMDsKfQ==