P16126 [USTCPC 2026] Note Offset Adjustment

题目背景

“双星很难吗?我rks12.66。” 众所周知,Phigros 需要校准谱面延时。在遥远又可能不遥远的未来,克露丝卡尔酱发明一个机器能够自动玩 Phigros,但是她竟然忘记了机器设置的谱面延时是多少? 因此,她获得了全部 Bad 的好成绩,并生气地离开了实验室。你来到了实验室,看到了一片狼藉的机器。为了帮助克露丝卡尔酱,你决定偷偷地测量出机器的谱面延时?

题目描述

**这是一道交互题**。 交互库有一个整数 $x\in [-400,600]$,你每次可以询问一个整数 $y\in [-1000,1000]$,然后交互库会根据以下情况返回答案: 1. `Perfect`:$|x-y|\in [0,80]$。 2. `Good`:$|x-y|\in (80,160]$。 3. `Bad`:$|x-y|\in (160,180]$。 4. `Miss`:$|x-y|\in (180,\infty)$。 你需要在 $10$ 次询问内返回正确的结果 $x$。 ### 交互方式 **本题有多组测试数据。** 第一行,输入数据组数 $T (1\le T\le 1000)$。 对于每组数据: 当你需要进行询问时: + 以 `? y` 的格式输出并**清空缓冲区**。你需要保证 $-1000\le y\le 1000$,且目前询问次数(包含该次询问)不超过 $10$ 次,否则交互库会出现未知错误。 + 之后,请输入一个字符串 $s$ 表示获取的字符串信息。 当你已经获得答案后,以 `! x` 的格式输出并**清空缓冲区**。 当处理完所有数据组数后,请立刻终止程序。

输入格式

输出格式

说明/提示

当答案为 $0$ 时,分别询问 $0,100,200$ 的结果如样例所示。 如何**清空缓冲区**: + 在 C 和 C++ 中,使用 ``fflush(stdout)``(如果你使用 $\text{printf}$)或 ``cout.flush()``(如果你使用 $\text{cout}$)。 + 在 Python 中,使用 ``stdout.flush()``。 + 特别地,在 C++ 中,使用 ``coutt; while(t--){ cout