CF1406E.Deleting Numbers

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

This is an interactive problem.

There is an unknown integer xx ( 1xn1\le x\le n ). You want to find xx .

At first, you have a set of integers {1,2,,n}\{1, 2, \ldots, n\} . You can perform the following operations no more than 1000010000 times:

  • A aa : find how many numbers are multiples of aa in the current set.
  • B aa : find how many numbers are multiples of aa in this set, and then delete all multiples of aa , but xx will never be deleted (even if it is a multiple of aa ). In this operation, aa must be greater than 11 .
  • C aa : it means that you know that x=ax=a . This operation can be only performed once.

Remember that in the operation of type B a>1a>1 must hold.

Write a program, that will find the value of xx .

输入格式

The first line contains one integer nn ( 1n1051\le n\le 10^5 ). The remaining parts of the input will be given throughout the interaction process.

输出格式

In each round, your program needs to print a line containing one uppercase letter A, B or C and an integer aa ( 1an1\le a\le n for operations A and C, 2an2\le a\le n for operation B). This line desribes operation you make.

If your operation has type C your program should terminate immediately.

Else your program should read one line containing a single integer, which is the answer to your operation.

After outputting each line, don't forget to flush the output. To do it use:

  • fflush(stdout) in C/C++;
  • System.out.flush() in Java;
  • sys.stdout.flush() in Python;
  • flush(output) in Pascal;
  • See the documentation for other languages.

It is guaranteed, that the number xx is fixed and won't change during the interaction process.

Hacks:

To make a hack, use such input format:

The only line should contain two integers nn , xx ( 1xn1051 \leq x \leq n \leq 10^5 ).

输入输出样例

  • 输入#1

    10
    
    2
    
    4
    
    0

    输出#1

    B 4
    
    A 2
    
    A 8
    
    C 4

说明/提示

Note that to make the sample more clear, we added extra empty lines. You shouldn't print any extra empty lines during the interaction process.

In the first test n=10n=10 and x=4x=4 .

Initially the set is: {1,2,3,4,5,6,7,8,9,10}\{1,2,3,4,5,6,7,8,9,10\} .

In the first operation, you ask how many numbers are multiples of 44 and delete them. The answer is 22 because there are two numbers divisible by 44 : {4,8}\{4,8\} . 88 will be deleted but 44 won't, because the number xx will never be deleted. Now the set is {1,2,3,4,5,6,7,9,10}\{1,2,3,4,5,6,7,9,10\} .

In the second operation, you ask how many numbers are multiples of 22 . The answer is 44 because there are four numbers divisible by 22 : {2,4,6,10}\{2,4,6,10\} .

In the third operation, you ask how many numbers are multiples of 88 . The answer is 00 because there isn't any number divisible by 88 in the current set.

In the fourth operation, you know that x=4x=4 , which is the right answer.

首页