Это интерактивная задача.
Але и София хотят побеждать в каждой битве аур в городе, поэтому готовят уличный фокус с мешками монет.
На столе стоят $$$n$$$ мешков. В $$$i$$$-м мешке находится $$$a_i$$$ монет. В каждом мешке все монеты относятся к одному типу: либо это монеты типа $$$6$$$, каждая из которых весит $$$6$$$ граммов, либо монеты типа $$$7$$$, каждая из которых весит $$$7$$$ граммов. Ровно в одном мешке находятся монеты типа $$$6$$$, а в остальных $$$n - 1$$$ мешках — монеты типа $$$7$$$. Але и София знают массив $$$a$$$, но не знают, в каком мешке находятся монеты типа $$$6$$$.
За один запрос они могут выбрать произвольное количество монет из каждого мешка (возможно, ноль) и узнать их общий вес. После каждого запроса все выбранные монеты возвращаются в свои мешки.
Пусть $$$f(a)$$$ — минимальное количество запросов, достаточное, чтобы гарантированно найти мешок с монетами типа $$$6$$$ независимо от того, какой это мешок. Помогите Але и Софии найти этот мешок, использовав не более $$$f(a)$$$ запросов.
Интерактор является адаптивным. Индекс мешка с монетами типа $$$6$$$ может меняться в ходе взаимодействия, если все предыдущие ответы остаются непротиворечивыми.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке каждого набора входных данных содержится одно целое число $$$n$$$ ($$$2 \le n \le 10^5$$$) — количество мешков.
Во второй строке каждого набора входных данных содержатся $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le n$$$) — количество монет в каждом мешке.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
Для каждого набора входных данных сначала считайте $$$n$$$ и массив $$$a$$$. После этого можно делать запросы.
Чтобы сделать запрос, выведите строку следующего формата:
После каждого запроса считайте одно целое число — общий вес выбранных монет, $$$\sum_{i=1}^{n} b_i \cdot w_i$$$, где $$$w_i = 6$$$, если в $$$i$$$-м мешке находятся монеты типа $$$6$$$, и $$$w_i = 7$$$ в противном случае. Этот вес может не помещаться в $$$32$$$-битный целочисленный тип.
Определив мешок с монетами типа $$$6$$$, выведите строку следующего формата:
Если вы превысите ограничение на количество запросов или укажете неверный мешок, интерактор выведет -1, и вы получите вердикт «Неправильный ответ». Получив -1 вместо любых ожидаемых входных данных, программа должна немедленно завершиться. В противном случае вы можете получить произвольный вердикт, поскольку программа может попытаться считать данные из закрытого потока. Некорректный вывод также может привести к немедленному завершению работы интерактора.
После вывода запроса или ответа выведите перевод строки и очистите буфер вывода. В противном случае вы можете получить вердикт «Превышено время бездействия». Чтобы очистить буфер вывода, используйте:
Взломы
Чтобы взломать задачу, используйте следующий формат.
Первая строка должна содержать число наборов входных данных $$$(1 \le t \le 5000)$$$. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных должна содержать целое число $$$n$$$ ($$$2 \le n \le 10^5$$$) — количество мешков — затем строку manual, затем целое число $$$k$$$ ($$$1 \le k \le n$$$) — индекс мешка с монетами по $$$6$$$ граммов.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le n$$$) — количество монет в каждом мешке.
Сумма $$$n$$$ по всем наборам входных данных не должна превышать $$$10^5$$$.
2 5 1 1 2 2 2 34 33 4 3 2 4 3 47
? 1 0 1 2 1 ? 1 1 2 0 1 ! 3 ? 3 2 2 0 ! 2
Пример взаимодействия не соответствует оптимальной стратегии и приведён лишь для демонстрации формата ввода и вывода.
Дополнительные пустые строки в примере добавлены только для удобства чтения и не являются частью фактического ввода или вывода.
В первом наборе входных данных $$$n = 5$$$ и $$$a = [1, 1, 2, 2, 2]$$$. Монеты типа $$$6$$$ находятся в третьем мешке. Показанные значения веса вычисляются следующим образом:
Во втором наборе входных данных $$$n = 4$$$ и $$$a = [3, 2, 4, 3]$$$. Монеты типа $$$6$$$ находятся во втором мешке. Запрос ? 3 2 2 0 выбирает семь монет, в том числе две из второго мешка, поэтому ответ равен $$$7 \cdot (3 + 2 + 0) + 6 \cdot 2 = 47$$$.
Затем участник выводит ! 2. Этот ответ верен для показанного выбора скрытого мешка, но запрос не позволяет различить второй и третий мешки.