class unorderedpairs{
public static int countPairs(int[] arr, int target) {
if (target % 2 != 0) return 0;
int k=target/2;
int countless=0;
int count=0;
for (int num : arr){
if (num==k) count++;
else if(num<k) countless++;
//|a[i]| < K and |a[j]| < K
/*
max(|a[i]|, |a[j]|) < K
2 * max < target
→ equation fails
*/
}
//All elements equal to k can pair with each other, not with themselves, and only once (no reverse order).
return count*countless+(count*(count-1))/2;
}
public static void main
(String[] args
) { int[] arr = {1, -2, 3, -3, 2};
int target = 6;
System.
out.
println(countPairs
(arr, target
)); }
}
CmNsYXNzIHVub3JkZXJlZHBhaXJzewogICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRQYWlycyhpbnRbXSBhcnIsIGludCB0YXJnZXQpIHsKICAgICAgICBpZiAodGFyZ2V0ICUgMiAhPSAwKSByZXR1cm4gMDsKICAgICAgICBpbnQgaz10YXJnZXQvMjsKICAgICAgICBpbnQgY291bnRsZXNzPTA7CiAgICAgICAgaW50IGNvdW50PTA7CiAgICAgICAgZm9yIChpbnQgbnVtIDogYXJyKXsKICAgICAgICAgICAgbnVtPU1hdGguYWJzKG51bSk7CiAgICAgICAgICAgIGlmIChudW09PWspIGNvdW50Kys7CiAgICAgICAgICAgIGVsc2UgaWYobnVtPGspIGNvdW50bGVzcysrOwogICAgICAgICAgICAvL3xhW2ldfCA8IEsgYW5kIHxhW2pdfCA8IEsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgbWF4KHxhW2ldfCwgfGFbal18KSA8IEsKICAgICAgICAgICAgIDIgKiBtYXggPCB0YXJnZXQKICAgICAgICAgICAgIOKGkiBlcXVhdGlvbiBmYWlscwogICAgICAgICAgICAgKi8KICAgICAgICB9CiAgICAgICAgLy9BbGwgZWxlbWVudHMgZXF1YWwgdG8gayBjYW4gcGFpciB3aXRoIGVhY2ggb3RoZXIsIG5vdCB3aXRoIHRoZW1zZWx2ZXMsIGFuZCBvbmx5IG9uY2UgKG5vIHJldmVyc2Ugb3JkZXIpLgogICAgICAgIHJldHVybiBjb3VudCpjb3VudGxlc3MrKGNvdW50Kihjb3VudC0xKSkvMjsKCiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgaW50W10gYXJyID0gezEsIC0yLCAzLCAtMywgMn07CiAgICAgICAgaW50IHRhcmdldCA9IDY7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb3VudFBhaXJzKGFyciwgdGFyZ2V0KSk7CiAgICB9Cn0=