#CF1406E. 2651~删倍数猜数字
2651~删倍数猜数字
当前没有测试数据。
- 时间限制: 1s
- 内存限制: 512MB
题目描述
这是一道交互题。
有一个未知整数 (),你需要找出它。
初始时你有一个集合 。你可以在不超过 次操作内执行以下操作:
- A a:查询当前集合中 的倍数有多少个。要求 。
- B a:查询当前集合中 的倍数有多少个,然后删除所有 的倍数,但 永远不会被删除(即使它是 的倍数)。要求 。
- C a:声明你知道了 。此操作只能执行一次,执行后程序立即终止。要求 。
的值在整个交互过程中是固定不变的。
输入
第一行输入一个整数 ()。
后续的输入在交互过程中作为查询的回复给出。
输出
每轮输出一行,由一个大写字母 A、B 或 C 以及一个整数 组成。
每次输出后需要刷新缓冲区(flush),确保交互器及时收到:
- C/C++:
fflush(stdout); - Java:
System.out.flush(); - Python:
sys.stdout.flush();
样例
输入
10
2
4
0
输出
B 4
A 2
A 8
C 4
解释
,。初始集合:。
| 操作 | 返回值 | 说明 |
|---|---|---|
B 4 |
4 的倍数有 ,共 2 个;删除它们,但 被保留。集合变为 | |
A 2 |
2 的倍数有 ,共 4 个 | |
A 8 |
8 已经被删除,集合中没有 8 的倍数 | |
C 4 |
正确猜出 ,程序结束 |
注意:样例中的空行仅为方便阅读,实际交互时不要输出空行。
Hack 格式
在 CF 上 Hack 此题时,一行输入两个整数: 和 ()。
评测说明
- 如果操作次数超过 ,判为 Wrong Answer。
- 如果删除操作中意外删除了 ,后续查询结果将不再可靠,最终判为 Wrong Answer。