#aBC355E. [ABC355E] Guess the Sum
[ABC355E] Guess the Sum
AT_abc355_e [ABC355E] Guess the Sum
题目描述
本题是一个交互式问题(你的程序需要与评测系统通过输入输出进行交互)。
给定正整数 ,以及两个整数 ,满足 。评测系统持有一个长度为 的数列 ,其中每个元素都是 到 之间的整数。
你的目标是求出 除以 的余数。但你无法直接得知数列 的元素值。你可以向评测系统发起如下询问:
- 选择非负整数 ,使得 。令 ,你可以询问 除以 的余数。
对于任意的 ,能够确定 除以 的余数所需的最小询问次数为 。请你在不超过 次的询问内,求出 除以 的余数。
输入格式
本题为交互式问题(你的程序需要与评测系统通过输入输出进行交互)。
首先,你需要从标准输入读取整数 。
接下来,你可以不断进行询问,直到能够确定 除以 的余数。每次询问,请按如下格式输出到标准输出:
?
其中 需满足:
- 为非负整数
评测系统会返回如下格式的响应:
其中 是你本次询问的答案,即 时, 除以 的余数。
如果 不满足约束,或询问次数超过 ,则 为 -1。
如果评测系统返回 -1,你的程序已被判为错误,请立即终止程序。
当你确定 除以 的余数为 时,请按如下格式输出答案,并立即终止程序:
!
输出格式
见上文输入格式说明。
说明/提示
约束条件
- 输入均为整数
注意事项
- 每次输出后请在末尾加上换行并刷新标准输出,否则可能会导致评测结果为 TLE。
- 如果在交互过程中输出格式错误或程序中途退出,评测结果不确定。
- 输出答案后请立即终止程序,否则评测结果不确定。
输入输出样例
以下是 时的输入输出示例。在此情况下 ,因此最多可进行 次询问。
输入 输出 说明
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$ 后输出。
由 ChatGPT 4.1 翻译