#AdjustTest3. A+B Problem 3
A+B Problem 3
Background
这是一道系统测试题,用于检验本 OJ 的 IO 式交互评测流程是否正确。
Description
你想要水一道 A+B Problem. 但是你忘记 是多少了,只记得它们都是 且 都是整数。且 是 的正整数倍。
你可以通过询问系统(交互库)不超过 次问题来推理出 的值。
与交互库进行交互的流程见 Format. 请严格按格式的形式进行交互。
Format
你可以通过如下输出来询问信息:
? -
,表示询问 的值。? /
,表示询问 的值。
若你进行了大于 次询问,或者你的询问不符合格式,交互库会立刻终止交互,并给出 WA 的评测结果。
每当你进行一次询问后,请换行并刷新输出流,再输入交互库给出的回答。否则,交互库不会检测到你的询问,从而不会给出回馈,导致你的程序等待一个不存在的交互库的输入使评测 TLE(或 RE 等其他结果)。刷新输出流的方式如下:
- Python 语言中,在
print
中指定flush=True
,即print(...,flush=True)
. - C/C++ 语言中,使用
fflush(stdout);
.
当你得到 的值时,通过如下输出来反馈答案:
! x
,其中 为 的值。
同样地,在你给出回答后,请刷新输出流,否则交互库不会检测到你的回答,导致交互库未获得你的答案使评测 WA(或 TLE, RE 等结果)。
在你反馈答案后,交互库会根据答案正确与否进行判决,随后停止交互流程。你的程序在反馈答案之后不应该有其它操作,否则轻则忽略语句无事发生,重则影响评测流程导致 WA(或 RE, UKE 等结果)。
Samples
我们给出一种可能发生的交互情况。在本样例中,.
40
? -
! 50
在本样例中,最初没有任何数据可输入。选手代码先输出 ? -
提问,然后交互库将 的值提供至输入。随后选手代码得到结果 并反馈。
不保证只通过 这条信息可以严谨求出 .
Limitation
对于所有数据,时间限制 1s,空间限制 32MiB.
Remark
对于 python,还有一种刷新输出流的方式为:首先 import sys
,然后在每个输出语句后,添加语句 sys.stdout.flush()
.
对于 C++,还有一种刷新输出流的方式为 cout.flush();
.