/* 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
int[] arr = {1,3,2,4};
int k = 1;
System.
out.
println("no of good pairs are "+ cntOfGoodPairs
(arr,k
)); }
static int cntOfGoodPairs(int[] arr, int k){
HashMap
<Long,Long
> map
= new HashMap
<>(); map.put(0L,1L);
long[] prefix = new long[arr.length];
prefix[0] = arr[0];
int cnt = 0;
for(int i =1;i<arr.length;i++){
prefix[i] = prefix[i-1]+arr[i];
}
for(int j=0;j<arr.length;j++){
long modPrefix = ((prefix[j]%k -j%k+k)%k);
cnt+=map.getOrDefault(modPrefix, 0L);
map.put(modPrefix,map.getOrDefault(modPrefix, 0L)+1);
}
return cnt;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlpbnRbXSBhcnIgPSB7MSwzLDIsNH07CgkJaW50IGsgPSAxOwoJCVN5c3RlbS5vdXQucHJpbnRsbigibm8gb2YgZ29vZCBwYWlycyBhcmUgIisgY250T2ZHb29kUGFpcnMoYXJyLGspKTsKCX0KCXN0YXRpYyBpbnQgY250T2ZHb29kUGFpcnMoaW50W10gYXJyLCBpbnQgayl7CgkJSGFzaE1hcDxMb25nLExvbmc+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKCQltYXAucHV0KDBMLDFMKTsKCQlsb25nW10gcHJlZml4ID0gbmV3IGxvbmdbYXJyLmxlbmd0aF07CgkJcHJlZml4WzBdID0gYXJyWzBdOwoJCWludCBjbnQgPSAwOwoJCWZvcihpbnQgaSA9MTtpPGFyci5sZW5ndGg7aSsrKXsKCQkJcHJlZml4W2ldID0gcHJlZml4W2ktMV0rYXJyW2ldOwoJCX0KCQlmb3IoaW50IGo9MDtqPGFyci5sZW5ndGg7aisrKXsKCQkJbG9uZyBtb2RQcmVmaXggPSAoKHByZWZpeFtqXSVrIC1qJWsrayklayk7CgkJCWNudCs9bWFwLmdldE9yRGVmYXVsdChtb2RQcmVmaXgsIDBMKTsKCQkJbWFwLnB1dChtb2RQcmVmaXgsbWFwLmdldE9yRGVmYXVsdChtb2RQcmVmaXgsIDBMKSsxKTsKCQl9CgkJcmV0dXJuIGNudDsKCQkKCX0KfQ==