printРабочее место участника

printЗадачи

2127. k-сортировка

Ограничения: время – 2s/4s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

В этом году Гриша поступил в Университет ИТ. В Университете ИТ очень много новых предметов, интересных и не очень. Особенно Грише нравится предмет "Алгоритмы и структуры данных". На последней лекции были рассказаны алгоритмы сортировки. Гриша – очень амбициозный молодой человек и хочет изобрести свой алгоритм, который впоследствии будет назван именем его любимого дедушки. Вдохновившись чтением многотомника Кнута, Гриша решил модернизировать какой-нибудь уже существующий алгоритм сортировки натуральных чисел, наложив следующее ограничение. Любые два элемента можно менять местами, только если они сравнимы по модулю некоторого натурального числа `k`, то есть дают одинаковые остатки при делении на `k`. Но все инновационные методы требуют проверки, поэтому Гриша обратился за помощью к Вам!
Проверьте, сможет ли новая версия алгоритма отсортировать заданный массив натуральных чисел.
Первая строка входного файла содержит два числа `n` (`1\ ≤\ n\ ≤\ 1000`) и `k` (`1\ ≤\ k\ ≤\ 10^9`) – количество элементов в массиве и число, по модулю которого сравниваются элементы массива.
Вторая строка входного файла содержит `n` целых чисел `a_i` – элементы массива (`1\ ≤\ a_i\ ≤\ 10^9`). В выходной файл выведите YES, если алгоритм сможет отсортировать заданный массив и NO – в обратном случае.

Пример ввода 1

5 2
5 4 3 2 1

Пример вывода 1

YES

Пример ввода 2

3 2
2 3 1

Пример вывода 2

NO
Источник: neerc.ifmo.ru/school
loading