cf16-final D - Pair Cards(700点)
解説
2つ目の条件を見ると、余りに注目するのがいい気がする。
なので、とりあえず$ Xを全部、$ Mで割った余りによって集合$ B_0,B_1,B_2,\cdots,B_{M - 1}に分類する。
すると、2つ目の条件を満たすときは、
$ B_0から2つ選ぶ
$ B_i,B_j (i + j = M)からそれぞれ1つずつ選ぶ
ようにすればいい。
よって、
$ B_0から2つ選ぶとき(または$ B_{M / 2}から2つ選ぶとき)
1つ目の条件を無視しても問題ないので、ペアは$ |B_0| / 2個出来る。
$ B_i,B_j (i + j = M)からそれぞれ1つずつ選ぶとき
自分の考えた方法もあるけど、公式解説の方が圧倒的に分かりやすいので、そっちを見ましょう(自分の考えた方法はACコードを見ると大体分かると思います)