P14750 月影戀

题目背景

:::epigraph[——月雩 & 影怿,2022.4.17] 皓**月**千里,静**影**沉璧——故事的开始总是美好的 ::: ![](https://cdn.luogu.com.cn/upload/image_hosting/rfe93eo3.png) :::align{center} *“浮浮泻星渚,萧萧沉残云。无期踯躅夜,与卿话香薰。”——月雩,《壬寅上巳有感》* ::: 小 Y 和小 L 是一对情侣。少女的心思总是捉摸不透的,这让小 Y 非常苦恼。于是他准备求助作为恋爱大师的你来帮助他猜出小 L 的心思。

题目描述

这是一道**交互题**。 具体来说,有一个神秘的正整数 $h\ (1\le h < 2^{60})$,你需要通过不超过 $\lfloor \log_2 h\rfloor+3$ 次询问来猜出这个数。每次询问可以向小 L 提出两个数字 $a$ 和 $b\ (1\le a, b < 2^{61})$,她会告诉你 $\gcd(a, h + b)$ 的值。 **交互库是非自适应的**。也就是说,$h$ 在交互开始前就已经固定。 注: - $\lfloor x \rfloor$ 代表不超过 $x$ 的最大整数,例如 $\lfloor 1.1 \rfloor=1,\ \lfloor 2.0 \rfloor=2$。 - $\gcd(a,b)$ 代表 $a$ 和 $b$ 的最大公因数,例如 $\gcd(10,15)=5$。 ### 交互格式 每次询问输出 `? a b`,代表你向小 L 询问的数,之后读入一个数 $g$ 代表 $\gcd(a, h + b)$。 如果你已经猜出了这个神秘数 $h$,输出 `! h`,代表你的答案。 每次输出之后,你需要清空缓冲区,清空输出缓冲区可以使用以下方式: - C/C++:`fflush(stdout)`(如果您使用 `printf`),`cout.flush() ` 或 `cout

输入格式

本题有多组数据。第一行一个正整数 $T\ (1\le T\le10^3)$,表示数据组数。 对于每组数据: 见「交互格式」。

输出格式

对于每组数据: 见「交互格式」。

说明/提示

注:样例仅展示交互格式。 如果返回的 $h$ 不正确,会判为 Wrong Answer。 如果询问的数 $a$ 或 $b$ 不在 [1, $2^{61}$) 范围内,可能会被判为 Wrong Answer 或 Time Limit Exceeded。 如果询问次数超过 $\lfloor \log_2 h\rfloor+3$ 次,会判为 Wrong Answer 或 Time Limit Exceeded,所以请一定要及时返回答案。 --- **结语:** 但故事总会结束。 > 飞花不似当年,胜似当年。 > 新愁哀怨醉亭前,一轮**孤月**,一行飞雁 > ——月雩, 乙巳(2025)年九月二十三日作