#M14. Guessing With GCDs
Guessing With GCDs
Background
这是一道交互题。
Description
你需要猜出一个正整数 的值。你可以索求不超过 次信息。每次索求信息时你可以给出两个不同的正整数 并获得 的值。其中 表示最大公约数。
本题有多组数据。换句话说,你要解决很多轮这样的问题。每轮之间相互独立,换句话说,无论前一轮的交互情况如何,下一轮都是 次以内的信息索求机会,但 值不一定相同。每一轮的交互流程合规,回答都正确,本测试数据点才算通过。
Format
你可以通过如下输出来索求信息:
? a b
,表示询问 .
你可以通过如下输出来反馈答案:
! x
,表示你猜出的这个正整数为 . 交互库将会将一个 0/1 值提供至输入。若你读取到 ,说明测试结束;若你读取到 ,说明即将开始下一轮猜数。单个数据点内轮数不超过 .
每当你进行一次索求,或你反馈答案后,请立即刷新输出流。刷新输出流的方式如下:
- Python 语言中,在
print
中指定flush=True
,即print(...,flush=True)
. - C/C++ 语言中,使用
fflush(stdout);
.
Samples
我们给出一种可能发生的交互情况。在本样例中,.
1
2
5
36
0
? 1 5
? 2 4
? 8 13
? 24 348
! 12
不保证样例中询问的信息可以严谨推出结果。
Limitation
1s, 256MiB.