Задача №113723. Кратность разностей
Дан набор из n целых чисел. Требуется выбрать из них ровно k чисел таким образом, что разность любых двух выбранных чисел будет делиться на m , либо определить, что это сделать невозможно.
Числа могут повторяться как в исходном наборе, так и среди выбранных чисел, но количество вхождений любого числа среди выбранных не должно превосходить количества его вхождений в исходный набор.
В первой строке входных данных находятся три целых числа n , k и m ( 2 ≤ k ≤ n ≤ 100 000 , 1 ≤ m ≤ 100 000 ) — количество чисел в наборе, количество чисел, которые нужно выбрать, и требуемый делитель разности любых двух выбранных чисел.
Во второй строке входных данных находятся n целых чисел a 1 , a 2 , ..., a n ( 0 ≤ a i ≤ 10 9 ) — числа в наборе.
Если выбрать k чисел требуемым образом невозможно, то в единственной строке выведите « No » (без кавычек).
Иначе, в первой строке выходных данных выведите « Yes » (без кавычек). Во второй строке выведите k целых чисел b 1 , b 2 , ..., b k — выбранные числа. Если существует несколько подходящих решений, выведите любое из них.
3 2 3 1 8 4
Yes 1 4
3 3 3 1 8 4
No
4 3 5 2 7 7 7
Yes 2 7 7