#CF1406E. 2651~删倍数猜数字

2651~删倍数猜数字

当前没有测试数据。

  • 时间限制: 1s
  • 内存限制: 512MB

题目描述

这是一道交互题

有一个未知整数 xx1xn1 \le x \le n),你需要找出它。

初始时你有一个集合 {1,2,,n}\{1, 2, \ldots, n\}。你可以在不超过 1000010000操作内执行以下操作:

  • A a:查询当前集合中 aa 的倍数有多少个。要求 1an1 \le a \le n
  • B a:查询当前集合中 aa 的倍数有多少个,然后删除所有 aa 的倍数,但 xx 永远不会被删除(即使它是 aa 的倍数)。要求 2an2 \le a \le n
  • C a:声明你知道了 x=ax = a。此操作只能执行一次,执行后程序立即终止。要求 1an1 \le a \le n

xx 的值在整个交互过程中是固定不变的。

输入

第一行输入一个整数 nn1n1051 \le n \le 10^5)。

后续的输入在交互过程中作为查询的回复给出。

输出

每轮输出一行,由一个大写字母 ABC 以及一个整数 aa 组成。

每次输出后需要刷新缓冲区(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

解释

n=10n = 10x=4x = 4。初始集合:{1,2,3,4,5,6,7,8,9,10}\{1,2,3,4,5,6,7,8,9,10\}

操作 返回值 说明
B 4 22 4 的倍数有 {4,8}\{4,8\},共 2 个;删除它们,但 x=4x=4 被保留。集合变为 {1,2,3,4,5,6,7,9,10}\{1,2,3,4,5,6,7,9,10\}
A 2 44 2 的倍数有 {2,4,6,10}\{2,4,6,10\},共 4 个
A 8 00 8 已经被删除,集合中没有 8 的倍数
C 4 正确猜出 x=4x=4,程序结束

注意:样例中的空行仅为方便阅读,实际交互时不要输出空行

Hack 格式

在 CF 上 Hack 此题时,一行输入两个整数:nnxx1xn1051 \le x \le n \le 10^5)。

评测说明

  • 如果操作次数超过 1000010000,判为 Wrong Answer
  • 如果删除操作中意外删除了 xx,后续查询结果将不再可靠,最终判为 Wrong Answer