问题1396--翻车

1396: 翻车

时间限制: 1 Sec  内存限制: 128 MB
提交: 6  解决: 3
[提交] [状态] [讨论版] [命题人:]

题目描述

有一天,小武找到了翻车王,给了他n个整数a1,a2,a3,…an,翻车王
需要选择其中的k个数,使得选出的k个数中任意两个的差都可以被m整除。
选出的数可以重复,但不可以超过这n个数中该数的个数。
翻车王不想翻车,所以需要你的帮助。

输入

第一行包括3个整数n,k,m(2 ≤ k ≤ n ≤ 100000,1 ≤ m ≤ 100000),
n,k,m意义见题面。
第二行包括n个数a1,a2,a3,…an(0 ≤ ai ≤ 1000000000)。

输出

如果不可以选出k个数,使得选出这k个数中任意两个的差都可以被m整
除,那么输出“No”。
否则,在第一行输出“Yes”。在第二行输出这k个整数b1,b2,...bk
(所选的数字),两两数之间有一个空格。如果有多种选择k个数字的方案,
请输出任意一种。

样例输入 Copy

4 3 5
2 7 7 7

样例输出 Copy

Yes
2 7 7

提示

【数据说明】
20%的数据n ≤ 15
50%的数据n ≤ 1000
另外20%的数据m ≤ 1000
100%的数据2 ≤ k ≤ n ≤ 105,1 ≤ m ≤ 105,0≤ ai ≤109

来源/分类