시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB93342.857%

문제

Андрей работает судьей на чемпионате по гипершашкам. В каждой игре в гипершашки участвует три игрока. По ходу игры каждый из игроков набирает некоторое положительное целое число баллов. Если после окончания игры первый игрок набрал a баллов, второй — b, а третий c, то говорят, что игра закончилась со счетом a:b:c.

Андрей знает, что правила игры гипершашек устроены таким образом, что в результате игры баллы любых двух игроков различаются не более чем в k раз

После матча Андрей показывает его результат, размещая три карточки с очками игроков на специальном табло. Для этого у него есть набор из n карточек, на которых написаны числа x1, x2, …, xn. Чтобы выяснить, насколько он готов к чемпионату, Андрей хочет понять, сколько различных вариантов счета он сможет показать на табло, используя имеющиеся карточки.

Требуется написать программу, которая по числу k и значениям чисел на карточках, которые имеются у Андрея, определяет количество различных вариантов счета, которые Андрей может показать на табло.

입력

Первая строка входного файла содержит два целых числа: n и k (3 ≤ n ≤ 100 000, 1 ≤ k ≤ 109).

Вторая строка входного файла содержит n целых чисел x1, x2, …, xn (1 ≤ xi ≤ 109).

출력

Выходной файл должен содержать одно целое число — искомое количество различных вариантов счета.

서브태스크

번호배점제한
115

3 ≤ n ≤ 100 000, k = 1, 1 ≤ xi ≤ 100 000

223

3 ≤ n ≤ 100, 1 ≤ k ≤ 100, 1 ≤ xi ≤ 100

330

3 ≤ n ≤ 100 000, 1 ≤ k ≤ 109, 1 ≤ xi ≤ 109, все xi различны

432

3 ≤ n ≤ 100 000, 1 ≤ k ≤ 109, 1 ≤ xi ≤ 109

예제 입력 1

5 2
1 1 2 2 3

예제 출력 1

9

힌트

В приведенном примере Андрей сможет показать следующие варианты счета: 1:1:2, 1:2:1, 2:1:1, 1:2:2, 2:1:2, 2:2:1, 2:2:3, 2:3:2, 3:2:2. Другие тройки чисел, которые можно составить с использованием имеющихся карточек, не удовлетворяют заданному условию, что баллы любых двух игроков различаются не более чем в k = 2 раза.

채점 및 기타 정보

  • 예제는 채점하지 않는다.