atcoder#ABC282F. [ABC282F] Union of Two Sets

[ABC282F] Union of Two Sets

配点 : 500500

問題文

この問題は インタラクティブな問題(あなたが作成したプログラムとジャッジプログラムが標準入出力を介して対話を行う形式の問題)です。

あなたとジャッジは下記の手順を行います。 手順はフェイズ 11 とフェイズ 22 からなり、まずフェイズ 11 を行った直後、続けてフェイズ 22 を行います。

(フェイズ 11

  • ジャッジから整数 NN が与えられる。
  • あなたは 11 以上 5000050000 以下の整数 MM を出力する。
  • さらにあなたは、すべての i=1,2,,Mi = 1, 2, \ldots, M について 1liriN1 \leq l_i \leq r_i \leq N を満たす、MM 個の整数の組 (l1,r1),(l2,r2),,(lM,rM)(l_1, r_1), (l_2, r_2), \ldots, (l_M, r_M) を出力する(MM 個の整数の組が相異なる必要はない)。

(フェイズ 22

  • ジャッジから整数 QQ が与えられる。
  • その後、あなたとジャッジは下記の手順を QQ 回繰り返す。- ジャッジからクエリとして 22 つの整数 L,RL, R が与えられる。
    • それに対する応答として、あなたは 11 以上 MM 以下の 22 つの整数 a,ba, b を出力する( a=ba = b でもよい)。 このとき、aabb は下記の条件を満たさなければならない。もし満たさなかった場合は不正解となる。- 集合 {la,la+1,,ra}\lbrace l_a, l_a+1, \ldots, r_a\rbrace と集合 {lb,lb+1,,rb}\lbrace l_b, l_b+1, \ldots, r_b\rbrace の和集合が、集合 {L,L+1,,R}\lbrace L, L+1, \ldots, R\rbrace と一致する。
  • ジャッジからクエリとして 22 つの整数 L,RL, R が与えられる。
  • それに対する応答として、あなたは 11 以上 MM 以下の 22 つの整数 a,ba, b を出力する( a=ba = b でもよい)。 このとき、aabb は下記の条件を満たさなければならない。もし満たさなかった場合は不正解となる。
  • 集合 {la,la+1,,ra}\lbrace l_a, l_a+1, \ldots, r_a\rbrace と集合 {lb,lb+1,,rb}\lbrace l_b, l_b+1, \ldots, r_b\rbrace の和集合が、集合 {L,L+1,,R}\lbrace L, L+1, \ldots, R\rbrace と一致する。

上記の手順を行った後、直ちにプログラムを終了することで正解となります。

制約

  • 1N40001 \leq N \leq 4000
  • 1Q1051 \leq Q \leq 10^5
  • 1LRN1 \leq L \leq R \leq N
  • 入力はすべて整数

入出力

この問題はインタラクティブな問題(あなたが作成したプログラムとジャッジプログラムが標準入出力を介して対話を行う形式の問題)です。

(フェイズ 11

  • まず、NN が入力から与えられます。
  • 次に、11 以上 5000050000 以下の整数 MM を出力してください。
  • その後、MM 回にわたって (l1,r1),(l2,r2),,(lM,rM)(l_1, r_1), (l_2, r_2), \ldots, (l_M, r_M) を出力してください。 具体的には、i=1,2,,Mi = 1, 2, \ldots, M について、ii 回目の出力では (li,ri)(l_i, r_i) を下記の形式で出力してください。
l_i r_i

(フェイズ 22

  • まず、QQ が入力から与えられます。
  • 各クエリでは、クエリを表す整数 L,RL, R が下記の形式で与えられます。
L R
  • 各クエリに対する応答では、22 つの整数 a,ba, b を下記の形式で出力してください。
a b

注意点

  • 出力を行うたびに、末尾に改行を入れて標準出力を flush してください。そうしなかった場合、ジャッジ結果が TLE となる可能性があります。
  • 対話の途中で不正な出力を行った、あるいはプログラムが途中で終了した場合のジャッジ結果は不定です。 特に、プログラムの実行中に実行時エラーが起こった場合に、ジャッジ結果が RE ではなく WA や TLE になる可能性があることに注意してください。
  • フェイズ 22 を終了したらただちにプログラムを終了してください。そうしない場合、ジャッジ結果は不定です。
  • フェイズ 22 で与えられる L,RL, R は、あなたがフェイズ 11 で出力した (l1,r1),(l2,r2),,(lM,rM)(l_1, r_1), (l_2, r_2), \ldots, (l_M, r_M) に応じて決定されます。

入出力例

以下は、N=4,Q=4N = 4, Q = 4 の場合の入出力例です。

入力 出力 説明
4 NN が与えられます。
6 MM を出力します。
3 3 (l1,r1)=(3,3)(l_1, r_1) = (3, 3) を出力します。
4 4 (l2,r2)=(4,4)(l_2, r_2) = (4, 4) を出力します。
1 1 (l3,r3)=(1,1)(l_3, r_3) = (1, 1) を出力します。
2 4 (l4,r4)=(2,4)(l_4, r_4) = (2, 4) を出力します。
1 3 (l5,r5)=(1,3)(l_5, r_5) = (1, 3) を出力します。
2 2 (l6,r6)=(2,2)(l_6, r_6) = (2, 2) を出力します。
4 QQ が与えられます。
1 3 11 個目のクエリとして L=1,R=3L = 1, R = 3 が与えられます。
1 5 11 個目のクエリに対する応答として a=1,b=5a = 1, b = 5 を出力します。
3 4 22 個目のクエリとして L=3,R=4L = 3, R = 4 が与えられます。
2 1 22 個目のクエリに対する応答として a=2,b=1a = 2, b = 1 を出力します。
2 4 33 個目のクエリとして L=2,R=4L = 2, R = 4 が与えられます。
4 4 33 個目のクエリに対する応答として a=4,b=4a = 4, b = 4 を出力します。
1 1 44 個目のクエリとして L=1,R=1L = 1, R = 1 が与えられます。
3 3 44 個目のクエリに対する応答として a=3,b=3a = 3, b = 3 を出力します。