import java.util.Scanner;
import java.util.TreeMap;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int n=scanner.nextInt();
		int c=scanner.nextInt();
		int count=0;
		TreeMap<Integer, Integer> map=new TreeMap<>();
		for (int i = 0; i < n; i++) {
			int a=scanner.nextInt();
			map.put(a, map.getOrDefault(a, 0)+1);
		}
		for (Integer i : map.keySet()) {
			if(map.containsKey(i+c)) {
				count+=map.get(i+c)*map.get(i);
			}
		}
		
		
		
		System.out.println(count);

	}

}

这题如果使用数组来暴力求解,一个测试用例都过不了,这道题应该用平衡二叉树,并且键来存数据,值来存个数。对于每一对符合条件的两个数,我们应该把它们的数量相乘,我一开始使用求最大值,竟然10个过了9个,笑了。