시간 제한메모리 제한제출정답맞힌 사람정답 비율
10 초 512 MB591147.843%

문제

В заповеднике живут $q$ тигров. Чтобы следить за положением тигров на территории заповедника, используются ошейники с радиомаяком. Ошейник у каждого тигра имеет радиомаяк с уникальным сигналом. Система обнаружения настраивается на приём сигнала радиомаяка от $i$-го тигра последовательно для $i$ от $1$ до $q$.

Для приёма сигнала на территории заповедника установлено $n$ приёмников в точках с координатами $(x_1, y_1), \ldots, (x_n, y_n)$. Система обнаружения позволяет сотруднику заповедника за один запрос выбрать любые $m$ ($3 \le m \le n$) приёмников. Выбранные приёмники должны являться вершинами выпуклого многоугольника. Система определяет, находится ли радиомаяк $i$-го тигра внутри этого многоугольника. 

Сотрудник заповедника должен локализовать положение каждого тигра. Положение $i$-го тигра считается локализованным, если удалось определить такое множество приёмников, являющихся вершинами выпуклого многоугольника, что внутри этого многоугольника находится тигр, но нет других приёмников.

Для того, чтобы локализовать положение каждого из тигров, сотруднику разрешается сделать не более $k$ запросов.

После того как положение $i$-го тигра локализовано, система автоматически переходит к приёму сигналов от следующего тигра, пока положение всех $q$ тигров не будет локализовано.

Гарантируется, что никакие три приёмника не лежат на одной прямой, и ни один тигр не находится на прямой, проходящей через два приёмника. Гарантируется, что существует хотя бы один выпуклый многоугольник с вершинами в приёмниках, внутри которого находится тигр.

Требуется написать программу, которая взаимодействует с программой жюри и локализует положение каждого тигра.

프로토콜

Это интерактивная задача.

Сначала на вход подаётся информация об установленных в заповеднике приёмниках и количестве тигров.

Первая строка входных данных содержит целое число $n$ --- количество приёмников ($3 \leq n \leq 5\,000$). Последующие $n$ строк описывают координаты приёмников, $j$-я из этих строк содержит два целых числа $x_j$ и $y_j$ --- координаты $j$-го приёмника ($-10^{9} \leq x_j, y_j \leq 10^{9})$. Следующая строка содержит число целое число $q$ --- количество тигров ($1 \leq q \leq 2000$).

Для локализации положения тигров необходимо выполнять запросы к системе обнаружения, роль которой выполняет программа жюри.

Для каждого теста зафиксировано число $k$ --- максимальное количество запросов к системе обнаружения для локализации положения одного тигра. Гарантируется, что $k$ запросов достаточно, чтобы решить задачу для соответствующих данных. Это число не сообщается программе-решению, но ограничения на него в различных подзадачах приведены в таблице системы оценивания. Если программа-решение делает более $k$ запросов для определения местоположения одного из тигров, на этом тесте она получает в качестве результата тестирования <<Неверный ответ>>.

Запрос к системе обнаружения начинается с символа <<?>>, за которым следует целое число $m$ --- количество выбранных в запросе приёмников ($3 \leq m \leq n$), и $m$ различных целых чисел $p_i$ --- номера приёмников, перечисленные в порядке обхода многоугольника по или против часовой стрелки ($1 \leq p_i \leq n$).

В ответ программа получает строку <<Yes>>, если тигр находится внутри многоугольника, образованного приёмниками с номерами $p_1, \ldots, p_m$, и строку <<No>> в противном случае.

После того, как положение тигра локализовано, программа-решение должна вывести строку, начинающуюся с символа <<!>>, за которым следует целое число $m$ --- количество выбранных приёмников ($3 \leq m \leq n$), и $m$ различных целых чисел $p_i$ --- номера приёмников, перечисленные в порядке обхода многоугольника по или против часовой стрелки ($1 \leq p_i \leq n$). Эта строка означает, что внутри выпуклого многоугольника, образованного приёмниками с номерами $p_1, \ldots, p_m$, находится тигр и нет других приёмников.

Ответное сообщение от программы жюри отсутствует, и программа-решение должна немедленно приступать к поиску следующего тигра. Локализовав положение тигра с номером $q$, программа-решение должна завершить работу.

Тигры не перемещаются во время работы системы обнаружения. Координаты тигров в каждом тесте фиксированы и не меняются в процессе тестирования.

Если существует несколько правильных многоугольников, локализующих положение тигра, можно вывести любой из них.

На рисунке продемонстрирована процедура локализации положения каждого из тигров из приведенного ниже примера. 

서브태스크

번호배점제한
115

$3 \le n \le 6$, $1 \le q \le 50$, $k = 4000$

217

$3 \le n \le 20$, $1 \le q \le 50$, $k = 4000$

39

$3 \le n \le 60$, $1 \le q \le 400$, $k = 4000$

49

$3 \le n \le 300$, $1 \le q \le 1000$, $k = 600$

510

$3 \le n \le 5000$, $1 \le q \le 10$, $k = 10\,000$

610

$3 \le n \le 300$, $1 \le q \le 1000$, $k = 250$

710

$3 \le n \le 1000$, $1 \le q \le 1000$, $k = 200$

810

$3 \le n \le 1000$, $1 \le q \le 2000$, $k = 60$

910

$3 \le n \le 2500$, $1 \le q \le 2000$, $k = 40$

예제 입력 1

6
3 0
0 2
2 4
4 2
5 5
6 1
4

Yes


No

Yes


No

No


Yes

Yes

예제 출력 1









? 3 1 2 3

! 3 1 2 3
? 3 1 2 3

? 4 1 2 3 4

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

? 3 4 5 6

! 3 1 4 6
? 4 1 3 5 6

? 4 4 3 5 6

! 4 4 3 5 6

힌트

Тигр 1, запрос 1:

Тигр 1, ответ:

 

Тигр 2, запрос 1:

Тигр 2, запрос 2:

Тигр 2, ответ:

Тигр 3, запрос 1:

Тигр 3, запрос 2:

Тигр 3, ответ:

Тигр 4, запрос 1:

Тигр 4, запрос 2:

Тигр 4, ответ:

Приведённые примеры иллюстрируют взаимодействие программы-решения с программой жюри <<по шагам>>, для чего в них добавлены дополнительные пустые строки. При реальном тестировании лишние пустые строки вводиться не будут, выводить пустые строки также не требуется.

채점 및 기타 정보

  • 예제는 채점하지 않는다.