Codeforces Round 538 (Div. 2)
E
Arithmetic Progression
Codeforces
2200
原题
← DF →
翻译中…

This is an interactive problem!

翻译中…

An arithmetic progression or arithmetic sequence is a sequence of integers such that the subtraction of element with its previous element ($x_i - x_{i - 1}$, where $i \ge 2$) is constant — such difference is called a common difference of the sequence.

翻译中…

That is, an arithmetic progression is a sequence of form $x_i = x_1 + (i - 1) d$, where $d$ is a common difference of the sequence.

翻译中…

There is a secret list of $n$ integers $a_1, a_2, \ldots, a_n$.

翻译中…

It is guaranteed that all elements $a_1, a_2, \ldots, a_n$ are between $0$ and $10^9$, inclusive.

翻译中…

This list is special: if sorted in increasing order, it will form an arithmetic progression with positive common difference ($d \gt 0$). For example, the list $[14, 24, 9, 19]$ satisfies this requirement, after sorting it makes a list $[9, 14, 19, 24]$, which can be produced as $x_n = 9 + 5 \cdot (n - 1)$.

翻译中…

Also you are also given a device, which has a quite discharged battery, thus you can only use it to perform at most $60$ queries of following two types:

翻译中…
  • Given a value $i$ ($1 \le i \le n$), the device will show the value of the $a_i$.
  • Given a value $x$ ($0 \le x \le 10^9$), the device will return $1$ if an element with a value strictly greater than $x$ exists, and it will return $0$ otherwise.
翻译中…

Your can use this special device for at most $60$ queries. Could you please find out the smallest element and the common difference of the sequence? That is, values $x_1$ and $d$ in the definition of the arithmetic progression. Note that the array $a$ is not sorted.

翻译中…

Interaction

翻译中…

The interaction starts with a single integer $n$ ($2 \le n \le 10^6$), the size of the list of integers.

翻译中…

Then you can make queries of two types:

翻译中…
  • "? i" ($1 \le i \le n$) — to get the value of $a_i$.
  • "> x" ($0 \le x \le 10^9$) — to check whether there exists an element greater than $x$
翻译中…

After the query read its result $r$ as an integer.

翻译中…
  • For the first query type, the $r$ satisfies $0 \le r \le 10^9$.
  • For the second query type, the $r$ is either $0$ or $1$.
  • In case you make more than $60$ queries or violated the number range in the queries, you will get a $r = -1$.
  • If you terminate after receiving the -1, you will get the "Wrong answer" verdict. Otherwise you can get an arbitrary verdict because your solution will continue to read from a closed stream.
翻译中…

When you find out what the smallest element $x_1$ and common difference $d$, print

翻译中…
  • "! $x_1$ $d$"
翻译中…

And quit after that. This query is not counted towards the $60$ queries limit.

翻译中…

After printing any 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

翻译中…

For hack, use the following format:

翻译中…

The first line should contain an integer $n$ ($2 \le n \le 10^6$) — the list's size.

翻译中…

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($0 \le a_i \le 10^9$) — the elements of the list.

翻译中…

Also, after the sorting the list must form an arithmetic progression with positive common difference.

翻译中…

Note

翻译中…

Note that the example interaction contains extra empty lines so that it's easier to read. The real interaction doesn't contain any empty lines and you shouldn't print any extra empty lines as well.

翻译中…

The list in the example test is $[14, 24, 9, 19]$.

翻译中…

样例

Input #1
4

0

1

14

24

9

19
Output #1
> 25

> 15

? 1

? 2

? 3

? 4

! 9 5
InputCopy OutputCopy
题目信息
题号
1114E
时间限制
2 s
内存限制
256 MB
标签
二分
交互题
数论
概率论

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