我们可以创建一个哈希表,用于存储每个药丸疗效模k的结果的数量。
本题有两种情况
情况1:每个元素模k的结果都为2k或者0,则这些元素都可以选择
情况2:两两元素的和模k的结果为0,则只能选这两个元素
塔某病了,你是远近闻名的神医,由于塔子经常干扰你刷每日委托,你打算借这个机会好好的斥候塔子。你准备了n粒药丸和一个目标疗效k,每一粒药丸疗效都被赋予了一个值,如果塔子能尽可能取出最多的药丸,使得任意两个药丸的疗效之和都是k的倍数。
古人云,今日留一面,他日好相见,救救塔子!(doge)
第一行输入两个正整数n和k
第二行输入n个正整数ai。代表塔子拿到的药丸
1≤n≤200000
1≤k,ai≤1e9
如果无法取不少于2个数,则直接输出-1。否则输出一个正整数,代表取出的数的最多数量.
输入
5 5
2 1 10 5 3
输出
2
说明
选择数字2和3
1s, 1024KiB for each test case.