H - Ango 解説 /

実行時間制限: 15 sec / メモリ制限: 256 MB

配点 : 100

問題文

うさぎとあなたは暗号ごっこをしようとしています。 暗号ごっこは以下のように行われます。

  • 最初に、あなたは N 個の 0 以上 M 以下の整数をうさぎに教えておく。このうち i 番目の整数を x_i とする。
  • うさぎは Q 回、以下のような方法であなたに暗号を送ってくる。
    • 2 つの整数 a, b (1 \leq a < b \leq N) をランダムに選び、x_a + x_b の値をあなたに伝える。
  • あなたは x_a + x_b の値が送られてくるたびに a, b の値を当てなければならない。

あなたは暗号ごっこを無事成功させることができるでしょうか?

部分点

  • N = 300, M = 10^{18}, Q = 200000 を満たすテストケースに正解した場合は、20 点が与えられる。
  • N = 200000, M = 10^{18}, Q = 200000 を満たすテストケースに正解した場合は、上記とは別に 50 点が与えられる。
  • N = 200000, M = 10^{12}, Q = 200000 を満たすテストケースに正解した場合は、上記とは別に 30 点が与えられる。

入出力

  1. 整数 N, M が空白区切りで標準入力に与えられる。
  2. あなたのプログラムは N 個の整数 x_i (1 \leq i \leq N) を空白区切りで出力しなければならない。
  3. 整数 Q が標準入力に与えられる。
  4. 以下を Q 回繰り返す。
    1. 2 つの整数 a, b (1 \leq a < b \leq N) がランダムに選ばれ、x_a + x_b の値が標準入力に与えられる。
    2. あなたのプログラムは整数 a, b を正しく予測し、整数 a, b を空白区切りで出力しなければならない。

入出力例も参考にせよ。

注意点

答えを出力した後、あなたのプログラムは直ちに終了しなければならない。 終了しなかった場合のジャッジ結果は不定である。 また、正しくない出力をした場合の結果も不定である(必ずしも WA になるとは限らない)。

あなたのプログラムが正しい答えを出力して終了した場合、正答とみなされる。

出力した後に、出力をflushしなければならないことに注意せよ。flushしなかった場合、TLEとなることがある。

各言語での入出力の方法は過去の AtCoder で出題されている問題 (リンク: ABC 019 D: 高橋くんと木の直径) を参考にするとよい。

入出力例

N=3,\ M=4,\ Q=2 ときの入出力例を示す。

入力 出力 説明
3 4 N, M が与えられている。
0 2 4 x_i を出力している。
2 Q が与えられている。
6 a=2,b=3 が選ばれ、x_2 + x_3 の値が与えられている。
2 3 a, b を予測し、出力している。
4 a=1,b=3 が選ばれ、x_1 + x_3 の値が与えられている。
1 3 a, b を予測し、出力している。