- Описание
- Отправленные решения
95. Счет в гипершашках
Андрей работает судьёй на чемпионате по гипершашкам. В каждой игре в гипершашки участвует три игрока. По ходу игры каждый из игроков набирает некоторое положительное целое число баллов. Если после окончания игры первый игрок набрал a баллов, второй — b, а третий c, то говорят, что игра закончилась со счетом a:b:c.
Андрей знает, что правила игры гипершашек устроены таким образом, что в результате игры баллы любых двух игроков различаются не более чем в k раз.
После матча Андрей показывает его результат, размещая три карточки с очками игроков на специальном табло. Для этого у него есть набор из n карточек, на которых написаны числа , , …, . Чтобы выяснить, насколько он готов к чемпионату, Андрей хочет понять, сколько различных вариантов счёта он сможет показать на табло, используя имеющиеся карточки.
Требуется написать программу, которая по числу k и значениям чисел на карточках, которые имеются у Андрея, определяет количество различных вариантов счета, которые Андрей может показать на табло.
Формат ввода
Первая строка входного файла содержит два целых числа: n и k ().
Вторая строка входного файла содержит n целых чисел , , …, ().
Формат вывода
Выходной файл должен содержать одно целое число — искомое количество различных вариантов счета.
Примечание
В приведенном примере Андрей сможет показать следующие варианты счета: 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 раза.
Ограничения
Ограничение времени
1 с
Ограничение памяти
64 МБ
Пример 1
5 2
1 1 2 2 3
9