QOJ.ac

QOJ

حد الوقت: 1.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 تفاعلية

#18098. Игра с костями

الإحصائيات

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

На чердаке Тая нашла древнюю настольную игру, в которую ей удавалось выигрывать лишь время от времени. Покажите Тае, как гарантированно выиграть в эту игру.

Игровой инвентарь состоит из круглой фишки радиуса 1, на которой нарисована стрелка, двух игральных костей и 360 наклеек. На каждой наклейке написано уникальное целое число от $0^\circ$ до $359^\circ$.

Перед началом игры нужно отметить точку на столе, затем поместить на стол круглую фишку, после чего выбрать 12 различных наклеек: 6 из них наклеить на первую кость, а остальные 6 — на вторую. Цель игры — накрыть отмеченную точку фишкой. Этого нужно достичь, делая ходы по следующему правилу. Сначала игрок бросает одну из костей и поворачивает фишку против часовой стрелки на количество градусов, написанное на выпавшей грани кости. Затем фишка перемещается в направлении стрелки на расстояние 10.

Координаты отмеченной точки всегда $(0, 0)$. Начальное положение центра фишки $(x, y)$ удовлетворяет следующему ограничению:

$$2 \leq \max(|x|, |y|) \leq 500$$

Количество запросов в этой задаче равно количеству сделанных ходов.

Протокол взаимодействия

Интерактор начинает с передачи координат центра фишки и направления её стрелки. Затем ваша программа должна ответить числами, наклеенными на обе кости. После этого для каждого номера кости, выбранного вашей программой, интерактор выводит количество градусов, выпавшее на кости, и сообщает, достигла ли фишка цели. Если фишка накрыла отмеченную точку, ваша программа должна завершиться. В противном случае интерактор выводит результирующее положение фишки и её стрелки, тем самым инициируя следующий ход.

Выходные данные

Первые две строки вывода должны содержать по 6 целых чисел в диапазоне от 0 до 359 — наклейки для первой и второй кости соответственно. Все целые числа в этих строках должны быть уникальными.

Последующие строки должны содержать только число 1 или 2 — номер кости, которую нужно бросить.

Не забывайте сбрасывать буфер стандартного вывода после печати каждой строки.

Входные данные

Входные данные состоят из четверок строк:

  1. $x, y$ — координаты центра фишки;
  2. $v_x, v_y$ ($v_x^2 + v_y^2 = 10$) — направление стрелки фишки;
  3. $d$ — количество градусов, выпавшее на кости (каждая сторона кости выпадает с одинаковой вероятностью);
  4. «Yes» — фишка накрыла точку $(0, 0)$, «No» — в противном случае.

Примеры

Входные данные 1

10.000000000 -10.000000000
0.000000000 -10.000000000
180
No
10.000000000 0.000000000
0.000000000 10.000000000
90
Yes

Выходные данные 1

180 96 250 187 319 6
295 152 82 90 32 334
1
2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.