import java.util.*;
class Main {
public static int contiguousSubarray(int[] nums,int target) {
Map
<Integer, Integer
> map
= new HashMap
<>(); int sum = 0;
int count = 0;
map.put(0, 1);
for (int num : nums) {
sum += num;
int find=sum-target;
if (map.containsKey(find)) {
count += map.get(find);
}
map.put(sum, map.getOrDefault(sum, 0) + 1);
}
return count;
}
public static void main
(String[] args
) { Scanner sc
=new Scanner
(System.
in); int n=sc.nextInt();
int[] nums = new int[n];
for(int i=0;i<n;i++){
nums[i]=sc.nextInt();
}
int target=sc.nextInt();
int count=contiguousSubarray(nums,target);
System.
out.
println("Number of subarrays with sum "+target
+" : "+count
); sc.close();
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIGludCBjb250aWd1b3VzU3ViYXJyYXkoaW50W10gbnVtcyxpbnQgdGFyZ2V0KSB7CiAgICAgICAgTWFwPEludGVnZXIsIEludGVnZXI+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICBpbnQgY291bnQgPSAwOwogICAgICAgIG1hcC5wdXQoMCwgMSk7CiAKICAgICAgICBmb3IgKGludCBudW0gOiBudW1zKSB7CiAgICAgICAgICAgIHN1bSArPSBudW07CiAgICAgICAgICAgIGludCBmaW5kPXN1bS10YXJnZXQ7CiAgICAgICAgICAgIGlmIChtYXAuY29udGFpbnNLZXkoZmluZCkpIHsKICAgICAgICAgICAgICAgIGNvdW50ICs9IG1hcC5nZXQoZmluZCk7CiAgICAgICAgICAgIH0KIAogICAgICAgICAgICBtYXAucHV0KHN1bSwgbWFwLmdldE9yRGVmYXVsdChzdW0sIDApICsgMSk7CiAgICAgICAgfQogCiAgICAgICAgcmV0dXJuIGNvdW50OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjPW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IG49c2MubmV4dEludCgpOwogICAgICAgIGludFtdIG51bXMgPSBuZXcgaW50W25dOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICBudW1zW2ldPXNjLm5leHRJbnQoKTsKICAgICAgICB9CiAgICAgICAgaW50IHRhcmdldD1zYy5uZXh0SW50KCk7CiAgICAgICAgaW50IGNvdW50PWNvbnRpZ3VvdXNTdWJhcnJheShudW1zLHRhcmdldCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2Ygc3ViYXJyYXlzIHdpdGggc3VtICIrdGFyZ2V0KyIgOiAiK2NvdW50KTsKICAgICAgICBzYy5jbG9zZSgpOwogICAgfQp9Cg==