import java.util.*;
class Main {
public static int countPairs(int[] nums, int target) {
Map
<Integer, Integer
> map
= new HashMap
<>(); int cnt=0;
for (int i = 0; i < nums.length; ++i) {
// abs(nums[i] - nums[j]) == target
// ----> nums[i] = nums[j] + target
// ----> nums[i] = nums[j] - target
int num=target+nums[i];
if(map.containsKey(num)){
cnt+=map.get(num);
}
num=nums[i]-target;
if(map.containsKey(num)){
cnt+=map.get(num);
}
map.put(nums[i], map.getOrDefault(nums[i],0)+1);
}
return cnt;
}
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=countPairs(nums,target);
System.
out.
println("Number of pairs with absolute difference "+target
+" : "+count
); sc.close();
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudFBhaXJzKGludFtdIG51bXMsIGludCB0YXJnZXQpIHsKICAgICAgICBNYXA8SW50ZWdlciwgSW50ZWdlcj4gbWFwID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgIGludCBjbnQ9MDsKICAgICAgICAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIGFicyhudW1zW2ldIC0gbnVtc1tqXSkgPT0gdGFyZ2V0IAogICAgICAgICAgICAvLyAtLS0tPiBudW1zW2ldID0gbnVtc1tqXSArIHRhcmdldAogICAgICAgICAgICAvLyAtLS0tPiBudW1zW2ldID0gbnVtc1tqXSAtIHRhcmdldAogICAgICAgICAgICAKICAgICAgICAgICAgaW50IG51bT10YXJnZXQrbnVtc1tpXTsKICAgICAgICAgICAgaWYobWFwLmNvbnRhaW5zS2V5KG51bSkpewogICAgICAgICAgICAgICAgY250Kz1tYXAuZ2V0KG51bSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIG51bT1udW1zW2ldLXRhcmdldDsKICAgICAgICAgICAgaWYobWFwLmNvbnRhaW5zS2V5KG51bSkpewogICAgICAgICAgICAgICAgY250Kz1tYXAuZ2V0KG51bSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIG1hcC5wdXQobnVtc1tpXSwgbWFwLmdldE9yRGVmYXVsdChudW1zW2ldLDApKzEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gY250OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIHNjPW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IG49c2MubmV4dEludCgpOwogICAgICAgIGludFtdIG51bXMgPSBuZXcgaW50W25dOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICBudW1zW2ldPXNjLm5leHRJbnQoKTsKICAgICAgICB9CiAgICAgICAgaW50IHRhcmdldCA9IHNjLm5leHRJbnQoKTsKICAgICAgICBpbnQgY291bnQ9Y291bnRQYWlycyhudW1zLHRhcmdldCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgcGFpcnMgd2l0aCBhYnNvbHV0ZSBkaWZmZXJlbmNlICIrdGFyZ2V0KyIgOiAiK2NvdW50KTsKICAgICAgICBzYy5jbG9zZSgpOwogICAgfQp9Cg==