Codeforces Round 912 (Div. 2) |
---|
Закончено |
Это интерактивная задача.
Теофанис и его сестра играют в следующую игру.
У них есть $$$n$$$ точек на двумерной плоскости и начальная точка $$$(s_x,s_y)$$$. Каждый игрок (начиная с первого) выбирает одну из $$$n$$$ точек, которая не была выбрана ранее, и прибавляет к сумме (которая изначально равна $$$0$$$) квадрат евклидова расстояния между предыдущей точкой (которая либо является начальной, либо была выбрана другим игроком) и новой точкой (которую он выбрал).
Игра заканчивается после ровно $$$n$$$ ходов (когда все точки выбраны). Первый игрок выигрывает, если в итоге сумма четна. В противном случае побеждает второй игрок.
Теофанис — очень соревновательный человек и ненавидит проигрывать. Поэтому он хочет выбрать, играть ему первым или вторым. Можете ли вы показать ему, какого игрока выбрать, и как он должен играть, чтобы победить сестру?
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 2000$$$) — количество наборов входных данных.
Входные данные для каждого набора доступны только после завершения взаимодействия (окончания игры) для всех предыдущих наборов данных.
Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 10^{5}$$$) — количество точек.
Вторая строка каждого набора входных данных содержит два целых числа $$$s_x$$$, $$$s_y$$$ ($$$0 \le s_x, s_y \le 10^{9}$$$) — координаты начальной точки.
В $$$i$$$-й из следующих $$$n$$$ строк содержатся два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$0 \le x_i, y_i \le 10^{9}$$$) — координаты $$$i$$$-й точки.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^{5}$$$.
Для каждого набора входных данных, после считывания входных данных, вы должны сначала вывести игрока, за которого вы хотите играть (First, если вы хотите играть за первого игрока, или Second, если за второго).
Затем необходимо выиграть в игре. Когда наступает ваша очередь ходить, вы должны вывести индекс $$$j$$$ ($$$1 \le j \le n$$$) точки, которую вы хотите выбрать. Когда наступает очередь другого игрока, считайте индекс, который выбрал ваш соперник.
Когда все ходы сделаны, переходите к считыванию входных данных для следующего набора, или завершите программу, если больше наборов входных данных нет.
Если вместо индекса или допустимого значения $$$n$$$ вы получаете целое число $$$-1$$$, это означает, что ваша программа сделала неверный ход или проиграла партию в предыдущем наборе входных данных. Ваша программа должна немедленно завершиться, чтобы получить вердикт «Неправильный ответ». В противном случае вы можете получить произвольный вердикт, потому что ваше решение будет продолжать читать из закрытого потока.
После вывода игрока, за которого будете играть, а также каждого хода, не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
Взломы
Для взлома используйте следующий формат:
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 2000$$$) — количество наборов входных данных.
Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 10^{5}$$$) — количество точек.
Вторая строка каждого набора входных данных содержит два целых числа $$$s_x$$$, $$$s_y$$$ ($$$0 \le s_x, s_y \le 10^{9}$$$) — координаты начальной точки.
В $$$i$$$-й из следующих $$$n$$$ строк содержатся два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$0 \le x_i, y_i \le 10^{9}$$$) — координаты точки $$$i$$$.
Сумма $$$n$$$ по всем наборам входных данных не должна превышать $$$10^{5}$$$.
2 6 4 6 7 6 8 5 2 1 6 2 6 4 3 3 2 5 1 4 1 1 3 2 2 1 3 3 1 2 2 3
Second 4 6 3 First 1 4
Приведенные примеры не обязательно демонстрируют оптимальные стратегии или правильный выбор игрока.
На рисунке ниже вы можете увидеть ходы, которые сделал каждый игрок в первом примере. Первый игрок — красный, а второй — черный.
Название |
---|