Codeforces Round 703 (Div. 2)
C1
Guessing the Greatest (easy version)
Codeforces
1600
原题
← BC2 →
翻译中…

The only difference between the easy and the hard version is the limit to the number of queries.

翻译中…

This is an interactive problem.

翻译中…

There is an array $a$ of $n$ different numbers. In one query you can ask the position of the second maximum element in a subsegment $a[l..r]$. Find the position of the maximum element in the array in no more than 40 queries.

翻译中…

A subsegment $a[l..r]$ is all the elements $a_l, a_{l + 1}, ..., a_r$. After asking this subsegment you will be given the position of the second maximum from this subsegment in the whole array.

翻译中…

Input

翻译中…

The first line contains a single integer $n$ $(2 \leq n \leq 10^5)$ — the number of elements in the array.

翻译中…

Interaction

翻译中…

You can ask queries by printing "? $l$ $r$" $(1 \leq l \lt r \leq n)$. The answer is the index of the second maximum of all elements $a_l, a_{l + 1}, \ldots, a_r$. Array $a$ is fixed beforehand and can't be changed in time of interaction.

翻译中…

You can output the answer by printing "! $p$", where $p$ is the index of the maximum element in the array.

翻译中…

You can ask no more than 40 queries. Printing the answer doesn't count as a query.

翻译中…

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 make a hack, use the following test format.

翻译中…

In the first line output a single integer $n$ $(2 \leq n \leq 10^5)$. In the second line output a permutation of $n$ integers $1$ to $n$. The position of $n$ in the permutation is the position of the maximum

翻译中…

Note

翻译中…

In the sample suppose $a$ is $[5, 1, 4, 2, 3]$. So after asking the $[1..5]$ subsegment $4$ is second to max value, and it's position is $3$. After asking the $[4..5]$ subsegment $2$ is second to max value and it's position in the whole array is $4$.

翻译中…

Note that there are other arrays $a$ that would produce the same interaction, and the answer for them might be different. Example output is given in purpose of understanding the interaction.

翻译中…

样例

Input #1
5

3

4
Output #1
? 1 5

? 4 5

! 1
InputCopy OutputCopy
题目信息
题号
1486C1
时间限制
1 s
内存限制
256 MB
标签
二分
交互题

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。