import java.util.*;
class Solution {
public int countLongestSubarraysSumK(int[] arr, int k) {
Map
<Integer, Integer
> first
= new HashMap
<>(); int sum = 0;
int maxLen = 0;
int count = 0;
first.put(0, -1);
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
if (first.containsKey(sum - k)) {
int leftIndex = first.get(sum - k);
int len = i - leftIndex;
if (len > maxLen) {
maxLen = len;
count = 1;
} else if (len == maxLen) {
count++;
}
}
if (!first.containsKey(sum)) {
first.put(sum, i);
}
}
return count;
}
}
public class Main {
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in);
// Example input:
// 6
// 1 2 -1 2 -1 2
// 2
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = sc.nextInt();
int k = sc.nextInt();
Solution obj = new Solution();
int ans = obj.countLongestSubarraysSumK(arr, k);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgU29sdXRpb24gewoKICAgIHB1YmxpYyBpbnQgY291bnRMb25nZXN0U3ViYXJyYXlzU3VtSyhpbnRbXSBhcnIsIGludCBrKSB7CiAgICAgICAgTWFwPEludGVnZXIsIEludGVnZXI+IGZpcnN0ID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgIGludCBzdW0gPSAwOwogICAgICAgIGludCBtYXhMZW4gPSAwOwogICAgICAgIGludCBjb3VudCA9IDA7CgogICAgICAgIGZpcnN0LnB1dCgwLCAtMSk7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHN1bSArPSBhcnJbaV07CgogICAgICAgICAgICBpZiAoZmlyc3QuY29udGFpbnNLZXkoc3VtIC0gaykpIHsKICAgICAgICAgICAgICAgIGludCBsZWZ0SW5kZXggPSBmaXJzdC5nZXQoc3VtIC0gayk7CiAgICAgICAgICAgICAgICBpbnQgbGVuID0gaSAtIGxlZnRJbmRleDsKCiAgICAgICAgICAgICAgICBpZiAobGVuID4gbWF4TGVuKSB7CiAgICAgICAgICAgICAgICAgICAgbWF4TGVuID0gbGVuOwogICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMTsgICAgICAgCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxlbiA9PSBtYXhMZW4pIHsKICAgICAgICAgICAgICAgICAgICBjb3VudCsrOyAgICAgICAgIAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIWZpcnN0LmNvbnRhaW5zS2V5KHN1bSkpIHsKICAgICAgICAgICAgICAgIGZpcnN0LnB1dChzdW0sIGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gY291bnQ7CiAgICB9Cn0KCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCiAgICAgICAgLy8gRXhhbXBsZSBpbnB1dDoKICAgICAgICAvLyA2CiAgICAgICAgLy8gMSAyIC0xIDIgLTEgMgogICAgICAgIC8vIDIKCiAgICAgICAgaW50IG4gPSBzYy5uZXh0SW50KCk7CiAgICAgICAgaW50W10gYXJyID0gbmV3IGludFtuXTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICAgICAgYXJyW2ldID0gc2MubmV4dEludCgpOwoKICAgICAgICBpbnQgayA9IHNjLm5leHRJbnQoKTsKCiAgICAgICAgU29sdXRpb24gb2JqID0gbmV3IFNvbHV0aW9uKCk7CiAgICAgICAgaW50IGFucyA9IG9iai5jb3VudExvbmdlc3RTdWJhcnJheXNTdW1LKGFyciwgayk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihhbnMpOwogICAgfQp9CgogICAgICAgIAoK