AT_abc282_f [ABC282F] Union of Two Sets

题目描述

[problemUrl]: https://atcoder.jp/contests/abc282/tasks/abc282_f 本题为**交互式问题**(你的程序将与评测程序通过标准输入输出进行交互)。 你和评测程序将按照如下步骤进行操作。操作分为第 $1$ 阶段和第 $2$ 阶段,首先进行第 $1$ 阶段,紧接着进行第 $2$ 阶段。 (第 $1$ 阶段) - 评测程序会给出一个整数 $N$。 - 你需要输出一个 $1$ 到 $50000$ 之间的整数 $M$。 - 此外,你还需要输出 $M$ 个整数对 $(l_1, r_1), (l_2, r_2), \ldots, (l_M, r_M)$,其中对于所有 $i = 1, 2, \ldots, M$,都有 $1 \leq l_i \leq r_i \leq N$。这些整数对可以重复。 (第 $2$ 阶段) - 评测程序会给出一个整数 $Q$。 - 接下来,你和评测程序将重复以下操作 $Q$ 次: - 评测程序会给出两个整数 $L, R$ 作为一次查询。 - 你需要输出两个 $1$ 到 $M$ 之间的整数 $a, b$(允许 $a = b$)。这两个数必须满足以下条件,否则判为不正确: - 集合 $\lbrace l_a, l_a+1, \ldots, r_a\rbrace$ 与集合 $\lbrace l_b, l_b+1, \ldots, r_b\rbrace$ 的并集,恰好等于集合 $\lbrace L, L+1, \ldots, R\rbrace$。 完成上述所有步骤后,程序应立即结束,否则判为不正确。

输入格式

本题为交互式问题(你的程序将与评测程序通过标准输入输出进行交互)。 (第 $1$ 阶段) - 首先,输入给出 $N$。 - 然后,你需要输出一个 $1$ 到 $50000$ 之间的整数 $M$。 - 接下来,你需要输出 $M$ 行,每行输出一对整数 $l_i\ r_i$,表示 $(l_i, r_i)$。 (第 $2$ 阶段) - 首先,输入给出 $Q$。 - 每次查询,输入会给出两个整数 $L\ R$。 - 对于每次查询,你需要输出两个整数 $a\ b$。

输出格式

(第 $1$ 阶段) - 输出一个整数 $M$。 - 接下来输出 $M$ 行,每行两个整数 $l_i\ r_i$。 (第 $2$ 阶段) - 对于每次查询,输出一行两个整数 $a\ b$。

说明/提示

### 约束条件 - $1 \leq N \leq 4000$ - $1 \leq Q \leq 10^5$ - $1 \leq L \leq R \leq N$ - 所有输入均为整数。 ### 注意事项 - **每次输出后请务必输出换行并刷新标准输出,否则可能会因超时(TLE)被判为错误。** - **如果在交互过程中输出不合法,或程序中途退出,评测结果不确定。** 特别是,如果程序运行时发生运行时错误,评测结果可能不是 RE,而是 WA 或 TLE。 - 第 $2$ 阶段结束后请立即终止程序,否则评测结果不确定。 - 第 $2$ 阶段中给出的 $L, R$ 会根据你在第 $1$ 阶段输出的 $(l_1, r_1), (l_2, r_2), \ldots, (l_M, r_M)$ 决定。 ### 输入输出样例 以下为 $N = 4, Q = 4$ 时的输入输出示例。 输入输出说明 `4` 评测程序给出 $N$。 `6` 你输出 $M$。 `3 3` 你输出 $(l_1, r_1) = (3, 3)$。 `4 4` 你输出 $(l_2, r_2) = (4, 4)$。 `1 1` 你输出 $(l_3, r_3) = (1, 1)$。 `2 4` 你输出 $(l_4, r_4) = (2, 4)$。 `1 3` 你输出 $(l_5, r_5) = (1, 3)$。 `2 2` 你输出 $(l_6, r_6) = (2, 2)$。 `4` 评测程序给出 $Q$。 `1 3` 第 $1$ 次查询,$L = 1, R = 3$。 `1 5` 你输出 $a = 1, b = 5$。 `3 4` 第 $2$ 次查询,$L = 3, R = 4$。 `2 1` 你输出 $a = 2, b = 1$。 `2 4` 第 $3$ 次查询,$L = 2, R = 4$。 `4 4` 你输出 $a = 4, b = 4$。 `1 1` 第 $4$ 次查询,$L = 1, R = 1$。 `3 3` 你输出 $a = 3, b = 3$。 由 ChatGPT 4.1 翻译