CF1999G1.Ruler (easy version)
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
本题是问题的简单版本。该版本与困难版之间的唯一区别是在这个版本中,你最多可以进行 10 次查询。
这是一道交互题。
有一把有 1001 个刻度的尺子,刻度分别为 1∼1001。不幸的是,尺子丢失了一个刻度 x(2≤x≤999)。当你用尺子量一个长度为 y 的物体时,尺子量出的结果为:
- 若 y<x,尺子将会量出正确的结果 y。
- 否则,尺子将会量出错误的结果 y+1。
你需要找出丢失的刻度 x。你可以每次提供两个 1 至 1000 内的整数 a,b,你将会收到尺子量出的 a 的长度与尺子量出的 b 的长度之积。
你可以进行最多 10 次询问。
输入格式
输入共一行一个整数 T,代表数据组数。
输出格式
你可以输出 ? a b 以进行一次询问。a 和 b 的含义见上。随后,你将收到一个整数,表示尺子量出的 a 的长度与尺子量出的 b 的长度之积。
当你猜出 x 后,你需要输出一行 ! x,x 为你猜出的 x 值。
如果你的询问大于 10 次或猜出的 x 值不对,你将收到一行一个 -1。请立刻终止程序。
在进行一次询问后,你需要刷新缓冲区。否则,你可能会获得 ILE(Idleness Limit Exceeded)。刷新缓冲区方法如下:
- 对于 C++:
fflush(stdout)或cout.flush(); - 对于 Java:
System.out.flush(); - 对于 Pascal:
flush(output); - 对于 Python:
stdout.flush()。
Translated by liuli688
输入输出样例
输入#1
2 18 25 9999
输出#1
? 3 5 ? 4 4 ! 4 ? 99 100 ! 100
输入解题思路,AI测评打分。不知道怎么写?