Это интерактивная задача.
Есть перестановка$$$^{\text{∗}}$$$ $$$p$$$ длины $$$n$$$.
Кто-то тайно выбрал два целых числа $$$l, r$$$ ($$$1 \le l \le r \le n$$$) и изменил перестановку следующим образом:
Обозначим $$$a$$$ как полученный массив, полученный путем изменения перестановки.
Вам дано целое число $$$n$$$, обозначающее длину перестановки $$$p$$$.
В одном запросе вы можете выбрать два целых числа $$$l, r$$$ ($$$1 \le l \le r \le n$$$) и спросить сумму подмассива либо оригинальной перестановки $$$p[l \dots r]$$$, либо измененного массива $$$a[l \dots r]$$$. Ответ на такой запрос будет соответствующей целочисленной суммой.
Ваша задача — найти пару $$$(l, r)$$$, которая была выбрана для получения $$$a$$$, не более чем за $$$\bf{40}$$$ запросов.
$$$^{\text{∗}}$$$Перестановка длины $$$n$$$ — это массив, состоящий из $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$ в любом порядке. Например, $$$[2,3,1,5,4]$$$ является перестановкой, но $$$[1,2,2]$$$ не является перестановкой (число $$$2$$$ встречается дважды в массиве), а $$$[1,3,4]$$$ также не является перестановкой ($$$n=3$$$, но массив содержит $$$4$$$).
Первая строка входных данных содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Каждый набор входных данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 2\cdot10^4$$$) — длину перестановки.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2\cdot10^4$$$.
Взаимодействие для каждого набора входных данных начинается с чтения целого числа $$$n$$$.
Вы можете делать два типа запросов.
В ответ вы получите одно целое число $$$x$$$ — сумму подмассива оригинальной перестановки. (Формально, $$$x = p_l + p_{l + 1} + \dots + p_r$$$).
В ответ вы получите одно целое число $$$y$$$ — сумму подмассива измененного массива. (Формально, $$$y = a_l + a_{l + 1} + \dots + a_r$$$).
Перестановка $$$p$$$ и выбранные целые числа $$$l$$$, $$$r$$$ фиксированы заранее и не могут быть изменены в течение времени взаимодействия.
Вы можете вывести окончательный ответ, напечатав «$$$ \texttt{! l r} $$$», где $$$l$$$, $$$r$$$ обозначают целые числа, которые были выбраны для получения $$$a$$$. После вывода ответа ваша программа должна перейти к следующему набору входных данных или завершиться, если их больше нет.
Вы можете задать не более чем $$$40$$$ запросов на набор входных данных. Вывод ответа не считается запросом. Если ваша программа выполняет более $$$40$$$ запросов для одного набора входных данных или делает недопустимый запрос, вы можете получить вердикт Неправильный ответ.
После вывода запроса не забудьте вывести конец строки и сбросить$$$^{\text{∗}}$$$ вывод. В противном случае вы получите Превышен лимит бездействия.
Взломы
Чтобы сделать взлом, используйте следующий формат теста.
Первая строка должна содержать одно целое число $$$t$$$ $$$(1 \le t \le 10^4)$$$ — количество наборов входных данных.
Первая строка каждого набора должна содержать одно целое число $$$n$$$ ($$$1 \le n \le 2\cdot10^4$$$) — длину перестановки $$$p$$$.
Вторая строка каждого набора должна содержать $$$n$$$ целых чисел $$$p_i$$$ ($$$1 \le p_i \le n$$$) — обозначающих перестановку $$$p$$$.
Третья строка каждого набора должна содержать два целых числа, разделенных пробелом $$$l$$$, $$$r$$$ ($$$1 \le l \le r \le n$$$) — выбранные целые числа.
Например, следующий тест соответствует приведенному примеру:
2
3
3 1 2
2 2
4
2 1 3 4
2 4
$$$^{\text{∗}}$$$Чтобы сбросить, используйте:
2 3 4 5 4 8 8 9
1 1 2 2 1 2 ! 2 2 1 2 4 2 1 3 2 3 4 ! 2 4
Для первого примера, $$$p = [3, 1, 2]$$$ и $$$l = 2$$$, $$$r = 2$$$. Следовательно, измененный массив $$$a$$$ будет равен $$$[3, 2, 2]$$$.
Таким образом, запрос «$$$\texttt{1 1 2}$$$» дает $$$p_1 + p_2 = 3 + 1 = 4$$$. А запрос «$$$\texttt{2 1 2}$$$» дает $$$a_1 + a_2 = 3 + 2 = 5$$$.
Для второго примера, $$$p = [2, 1, 3, 4]$$$ и $$$l = 2$$$, $$$r = 4$$$.
Обратите внимание, что запросы, показанные в образце теста, предназначены только для демонстрации и могут не соответствовать никакому оптимальному решению.