CF1856D.More Wrong

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

This is an interactive problem.

The jury has hidden a permutation ^\dagger pp of length nn .

In one query, you can pick two integers ll and rr ( 1l<rn1 \le l < r \le n ) by paying (rl)2(r - l)^2 coins. In return, you will be given the number of inversions ^\ddagger in the subarray [pl,pl+1,pr][p_l, p_{l + 1}, \ldots p_r] .

Find the index of the maximum element in pp by spending at most 5n25 \cdot n^2 coins.

Note: the grader is not adaptive: the permutation is fixed before any queries are made.

^\dagger A permutation of length nn is an array consisting of nn distinct integers from 11 to nn in arbitrary order. For example, [2,3,1,5,4][2,3,1,5,4] is a permutation, but [1,2,2][1,2,2] is not a permutation ( 22 appears twice in the array), and [1,3,4][1,3,4] is also not a permutation ( n=3n=3 but there is 44 in the array).

^\ddagger The number of inversions in an array is the number of pairs of indices (i,j)(i,j) such that i<ji < j and ai>aja_i > a_j . For example, the array [10,2,6,3][10,2,6,3] contains 44 inversions. The inversions are (1,2),(1,3),(1,4)(1,2),(1,3),(1,4) , and (3,4)(3,4) .

输入格式

Each test contains multiple test cases. The first line of input contains a single integer tt ( 1t1001 \le t \le 100 ) — the number of test cases.

The only line of each test case contains a single integer nn ( 2n20002 \le n \le 2000 ) — the length of the hidden permutation pp .

It is guaranteed that the sum of nn over all test cases does not exceed 20002000 .

输出格式

The interaction for each test case begins by reading the integer nn .

To make a query, output "? l r" ( 1l<rn1 \le l < r \le n ) without quotes. Afterwards, you should read one single integer — the answer for your query.

If you receive the integer 1-1 instead of an answer or a valid value of nn , it means your program has made an invalid query, has exceed the limit of queries, or has given an incorrect answer on the previous test case. Your program must terminate immediately to receive a Wrong Answer verdict. Otherwise you can get an arbitrary verdict because your solution will continue to read from a closed stream.

When you are ready to give the final answer, output "! i" ( 1in1 \le i \le n ) without quotes — the index of the maximum of the hidden permutation. After solving a test case, your program should move to the next one immediately. After solving all test cases, your program should be terminated immediately.

After printing a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:

  • fflush(stdout) or cout.flush() in C++;
  • System.out.flush() in Java;
  • flush(output) in Pascal;
  • stdout.flush() in Python;
  • see documentation for other languages.

Hacks

To hack, use the following format:

The first line contains an integer tt ( 1t1001 \le t \le 100 ) — the number of test cases.

The first line of each test case contains a single integer nn ( 2n20002 \le n \le 2000 ) — the length of the hidden permutation pp .

The second line of each test case contains nn integers p1,p2,,pnp_1,p_2,\ldots, p_n ( 1pin1 \le p_i \le n ), pp must be a permutation.

The sum of nn over all test cases should not exceed 20002000 .

输入输出样例

  • 输入#1

    2
    4
    
    1
    
    0
    
    2
    
    1

    输出#1

    ? 1 3
    
    ? 3 4
    
    ! 4
    
    ? 1 2
    
    ! 1

说明/提示

In the first test, the interaction proceeds as follows:

SolutionJuryExplanation2There are 22 test cases.4In the first test case, the hidden permutation is [1,3,2,4][1,3,2,4] , with length 44 .? 1 3 1The solution requests the number of inversions in the subarray [1,3,2][1,3,2] by paying 44 coins, and the jury responds with 11 .? 3 4 0The solution requests the number of inversions in the subarray [2,4][2,4] by paying 11 coin, and the jury responds with 00 .! 4 The solution has somehow determined that p4=4p_4 = 4 , and outputs it. Since the output is correct, the jury continues to the next test case.2In the second test case, the hidden permutation is [2,1][2,1] , with length 22 .? 1 2 1The solution requests the number of inversions in the subarray [2,1][2,1] by paying 11 coin, and the jury responds with 11 .! 1 The solution has somehow determined that p1=2p_1 = 2 , and outputs it. Since the output is correct and there are no more test cases, the jury and the solution exit.Note that the line breaks in the example input and output are for the sake of clarity, and do not occur in the real interaction.

首页