atcoder#ABC282F. [ABC282F] Union of Two Sets

[ABC282F] Union of Two Sets

题目描述

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

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

(フェイズ 1 1

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

(フェイズ 2 2

  • ジャッジから整数 Q Q が与えられる。
  • その後、あなたとジャッジは下記の手順を Q Q 回繰り返す。
    • ジャッジからクエリとして 2 2 つの整数 L, R L,\ R が与えられる。
    • それに対する応答として、あなたは 1 1 以上 M M 以下の 2 2 つの整数 a, b a,\ b を出力する( a = b a\ =\ b でもよい)。 このとき、a a b b は下記の条件を満たさなければならない。もし満たさなかった場合は不正解となる。
      • 集合 { 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 と一致する。

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

Input & Output Format

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

(フェイズ 1 1

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

li l_i ri r_i

(フェイズ 2 2

  • まず、Q Q が入力から与えられます。
  • 各クエリでは、クエリを表す整数 L, R L,\ R が下記の形式で与えられます。

L L R R

  • 各クエリに対する応答では、2 2 つの整数 a, b a,\ b を下記の形式で出力してください。

a a b b

题目大意

这是一道交互题

  • 首先,给出一个正整数 nn1n40001\le n\le 4000),你需要构造 mm1m500001\le m\le 50000) 个区间 [li,ri][l_i,r_i],满足 1lirin1\le l_i \le r_i \le n,输出 mm 和这 mm 个区间,这些区间的编号按输出顺序依次为 1,2,,m1,2,\cdots ,m

  • 然后,给出一个正整数 qq1q1051\le q\le 10^5),表示有 qq 次询问。对于每次询问,给定区间 [l,r][l,r],你要找到两个整数 i,ji,j1i,jm1\le i,j \le mii 可以等于 jj),满足在第一步中构造的区间中 [li,ri][l_i,r_i][lj,rj][l_j,r_j] 的并集等于 [l,r][l,r],输出 [i,j][i,j]

提示

制約

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

注意点

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

入出力例

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

入力出力説明4N N が与えられます。6M M を出力します。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) を出力します。4Q Q が与えられます。1 31 1 個目のクエリとして L = 1, R = 3 L\ =\ 1,\ R\ =\ 3 が与えられます。1 51 1 個目のクエリに対する応答として a = 1, b = 5 a\ =\ 1,\ b\ =\ 5 を出力します。3 42 2 個目のクエリとして L = 3, R = 4 L\ =\ 3,\ R\ =\ 4 が与えられます。2 12 2 個目のクエリに対する応答として a = 2, b = 1 a\ =\ 2,\ b\ =\ 1 を出力します。2 43 3 個目のクエリとして L = 2, R = 4 L\ =\ 2,\ R\ =\ 4 が与えられます。4 43 3 個目のクエリに対する応答として a = 4, b = 4 a\ =\ 4,\ b\ =\ 4 を出力します。1 14 4 個目のクエリとして L = 1, R = 1 L\ =\ 1,\ R\ =\ 1 が与えられます。3 34 4 個目のクエリに対する応答として a = 3, b = 3 a\ =\ 3,\ b\ =\ 3 を出力します。