AT_abc286_f [ABC286F] Guess The Number 2
题目描述
[problemUrl]: https://atcoder.jp/contests/abc286/tasks/abc286_f
本题为**交互题**(你的程序将与评测程序通过标准输入输出进行交互)。
你和评测程序将按照以下步骤进行操作。操作分为阶段 $1$ 和阶段 $2$,首先进行阶段 $1$,紧接着进行阶段 $2$。
(阶段 $1$)
- 评测程序会选择一个 $1$ 到 $10^9$ 之间的整数 $N$,该整数对你是隐藏的。
- 你需要输出一个 $1$ 到 $110$ 之间的整数 $M$。
- 然后你需要输出一个长度为 $M$ 的整数序列 $A=(A_1,A_2,\ldots,A_M)$,其中每个 $A_i$ 满足 $1 \leq A_i \leq M$。
(阶段 $2$)
- 评测程序会给你一个长度为 $M$ 的整数序列 $B=(B_1,B_2,\ldots,B_M)$。其中 $B_i = f^N(i)$。$f(i)$ 对于 $1 \leq i \leq M$ 定义为 $f(i)=A_i$,$f^N(i)$ 表示对 $i$ 反复应用 $f$ 共 $N$ 次后得到的整数。
- 你需要根据 $B$ 的信息,确定评测程序选择的整数 $N$,并输出 $N$。
完成上述步骤后,程序应立即结束,才算作正确解答。
输入格式
本题为交互题(你的程序将与评测程序通过标准输入输出进行交互)。
(阶段 $1$)
- 首先,输出一个 $1$ 到 $110$ 之间的整数 $M$,输出后请换行。
> $M$
- 然后,输出一个由空格分隔的、每个元素在 $1$ 到 $M$ 之间的长度为 $M$ 的整数序列 $A=(A_1,A_2,\ldots,A_M)$,输出后请换行。
> $A_1$ $A_2$ $\ldots$ $A_M$
(阶段 $2$)
- 输入一个长度为 $M$ 的整数序列 $B=(B_1,B_2,\ldots,B_M)$。
> $B_1$ $B_2$ $\ldots$ $B_M$
- 你需要求出整数 $N$,并输出 $N$,输出后请换行。
> $N$
如果输出不合法,评测程序会输出 `-1`。此时,提交已经被判为不正确,评测程序会立即结束,你的程序也应立即退出。
输出格式
见上文输入格式。
说明/提示
### 限制
- $N$ 是 $1$ 到 $10^9$ 之间的整数。
### 注意事项
- **每次输出后都要在末尾加上换行,并及时刷新标准输出。否则可能会因输出缓冲导致 TLE。**
- **如果在交互过程中输出不合法,或程序中途退出,评测结果不确定。**
- 输出答案后(或收到 `-1` 后)应立即正常退出程序,否则评测结果不确定。
- 特别注意,额外的换行也会被视为格式错误输出。
### 输入输出样例
以下是 $N=2$ 时的输入输出示例。
输入 输出 说明 评测程序选择了 $N=2$。$N$ 对你是隐藏的。 `4` 你输出 $M$。 `2 3 4 4` 你输出 $A=(2,3,4,4)$。 `3 4 4 4` 由于 $f^2(1)=3, f^2(2)=4, f^2(3)=4, f^2(4)=4$,评测程序会给你 $B=(3,4,4,4)$。 `2` 你根据 $B$ 推断出 $N=2$,输出 $N$ 并正常结束程序。
由 ChatGPT 4.1 翻译