#P7998. [WFOI - 01] 猜数(guess)
[WFOI - 01] 猜数(guess)
题目背景
这是一道交互题。交互库自适应。请注意特殊的时间限制。
每次输出后请记得清空缓存
题目描述
你需要猜一个正整数 ,保证 ;
你每次可以用诸如 ? x y
的询问,交互库会在 中指定选择一个数 ;
然后交互库会输出形如 u v
的回答,表示指定的数是 ,其与 的关系为 ;
具体地,
- 当交互库返回的 时,表示 ;
- 当交互库返回的 时,表示 ;
- 当交互库返回的 时,表示 。
而一次询问的代价是 ;
你可以通过 ! x
输出你认为正确的答案。
现在你要求出 。
设你的代价为 ,你每个测试点获得的分数和你的总代价有如下关系(每个测试点满分 分):
- 若 ,则你可以得到 ;
- 若 ,则你可以得到 $\lfloor(12-x)\times0.7 \div 1.00186965\rfloor \text{ pts}$。
- 若 ,则你可以得到 。
需要注意的是,在每一次操作后,需要调用以下函数刷新缓存:
- 对于 C/C++:
fflush(stdout)
; - 对于 C++:
std::cout << std::flush
; - 对于 Java:
System.out.flush()
; - 对于 Python:
stdout.flush()
; - 对于 Pascal:
flush(output)
; - 对于其他语言,请自行查阅对应语言的帮助文档。
交互格式
一开始交互库会给你 ,
然后你可以按题目描述中的方式进行询问或回答答案;
在回答后请立即退出程序。
输入格式
见交互格式。
输出格式
见交互格式。
2
1 0
? 1 2
! 2
3
1 0
3 2
? 1 3
? 3 3
! 2
提示
-
样例 解释:
询问后发现 ,所以 ;
-
样例 解释:
第一次询问后发现 ;
第二次询问后发现 ,所以 ;
【数据规模与约定】
测试点编号 | 测试点编号 | ||
---|---|---|---|
对于 的数据,,,。
保证每询问一次交互库时间是 的。