/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
class GfG {
static int cntSubarrays(int[] arr, int k) {
// HashMap to store prefix sums frequencies
Map
<Integer, Integer
> prefixmap
= new HashMap
<>(); int res = 0;
int currSum = 0;
for (int i = 0; i < arr.length; i++) {
currSum += arr[i];
if (currSum == k)
res++;
if (prefixmap.containsKey(currSum - k))
res += prefixmap.get(currSum - k);
prefixmap.put(currSum, prefixmap.getOrDefault(currSum, 0) + 1); //will make a pair with every such occurance
}
return res;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KfQoKY2xhc3MgR2ZHIHsKICAgIHN0YXRpYyBpbnQgY250U3ViYXJyYXlzKGludFtdIGFyciwgaW50IGspIHsKCiAgICAgICAgLy8gSGFzaE1hcCB0byBzdG9yZSBwcmVmaXggc3VtcyBmcmVxdWVuY2llcwogICAgICAgIE1hcDxJbnRlZ2VyLCBJbnRlZ2VyPiBwcmVmaXhtYXAgPSBuZXcgSGFzaE1hcDw+KCk7CiAgICAgICAgaW50IHJlcyA9IDA7CiAgICAgICAgaW50IGN1cnJTdW0gPSAwOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBjdXJyU3VtICs9IGFycltpXTsKCiAgICAgICAgICAgIGlmIChjdXJyU3VtID09IGspCiAgICAgICAgICAgICAgICByZXMrKzsKCiAgICAgICAgICAgIGlmIChwcmVmaXhtYXAuY29udGFpbnNLZXkoY3VyclN1bSAtIGspKQogICAgICAgICAgICAgICAgcmVzICs9IHByZWZpeG1hcC5nZXQoY3VyclN1bSAtIGspOwogICAgICAgICAgICBwcmVmaXhtYXAucHV0KGN1cnJTdW0sIHByZWZpeG1hcC5nZXRPckRlZmF1bHQoY3VyclN1bSwgMCkgKyAxKTsgLy93aWxsIG1ha2UgYSBwYWlyIHdpdGggZXZlcnkgc3VjaCBvY2N1cmFuY2UKICAgICAgICB9CgogICAgICAgIHJldHVybiByZXM7CiAgICB9Cgp9