#5102. Guess the Sum
0
Guess the Sum
Guess the Sum
题目描述
这是一个 交互式问题(你的程序通过标准输入输出与裁判交互)。 给定正整数 和整数 与 满足 0 \leq L \leq R < 2^N。裁判有一个隐藏序列 ,序列元素为 到 之间的整数(包含端点)。 你的目标是求出 被 除后的余数。但你不能直接知道序列 中元素的值。相反,你可以向裁判询问如下问题:
选择非负整数 和 ,满足 。令 且 。询问 被 除后的余数。
设 为在任意序列 情况下确定 被 除后的余数所需的最小问题次数。你需要在不超过 个问题内找到该余数。
输入格式
输出格式
提示
所有输入值均为整数。这是一个交互式问题(你的程序通过标准输入输出与裁判交互)。 首先,从标准输入读取整数 、 和 :
然后,重复提问直到你可以确定 被 除后的余数。每个询问应按以下格式输出:
其中, 和 必须满足以下约束:
和 为非负整数。
对于该询问,裁判会在标准输入中返回如下格式的回答:
其中, 是问题的答案,即当 且 时 被 除后的余数。 如果 和 不满足约束,或提问次数超过 ,则 将为 。 如果裁判返回 ,你的程序已被判为错误。在这种情况下,立即终止程序。 一旦你确定了 被 除后的余数,请按以下格式输出该余数并立即终止程序: 在每次输出的末尾打印换行并刷新标准输出。否则,判题可能会出现 TLE。 如果你的输出格式不正确或程序提前退出,判题结果将不确定。 输出答案后,立即终止程序。否则,判题结果将不确定。下面给出 、、 以及 的示例。在此例中,,因此你最多可以询问三次。
| Input | Output | Description |
|---|---|---|
| $3 1 5$ | 首先给出整数 $N$、$L$ 和 $R$。 | |
| $? 0 1$ | 询问 $(i, j) = (0, 1)$ 的问题。 | |
| $41$ | $l=1$ 且 $r=1$,所以返回 $A_1=41$ 被 $100$ 除的余数,为 $41$。裁判返回该值。 | |
| $? 1 1$ | 询问 $(i, j) = (1, 1)$ 的问题。 | |
| $85$ | $l=2$ 且 $r=3$,所以返回 $A_2 + A_3 = 85$ 被 $100$ 除的余数,为 $85$。裁判返回该值。 | |
| $? 1 2$ | 询问 $(i, j) = (1, 2)$ 的问题。 | |
| $11$ | $l=4$ 且 $r=5$,所以返回 $A_4 + A_5 = 111$ 被 $100$ 除的余数,为 $11$。裁判返回该值。 | |
| $! 37$ | 答案为 $37$,因此输出该值。 |
标签: AtCoder|abc355E
来源
AtCoder|abc355E