{ } Code Golf @cpp_durka
Завершено 15.09.2026 · дорешивание открыто

4 Баскетбол: в какой руке вести

ввод: stdin вывод: stdout время: 2s тестов: 30 только C++20 (GCC), C++20 (Clang)

Вы ведёте мяч к кольцу. Мяч надо держать дальше от защитника — то есть той рукой, которая от него отвёрнута.

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

Ввод

Семь строк по два целых числа x y, каждое по модулю не больше 1 000 000:

  • ваши координаты;
  • координаты кольца, к которому вы идёте;
  • координаты ровно пяти защитников.

Все координаты различны. Ось x направлена вправо, ось y вверх.

Никто не забегает за кольцо: все защитники на площадке, между вами и кольцом. Поэтому защитник впереди и правда мешает пройти — обойти его придётся с той или другой стороны.

Вывод

Одно слово:

  • RIGHT — если ближайший защитник впереди находится слева от вашего курса (мяч уводим в правую руку);
  • LEFT — если он справа;
  • LEFT — если он оказался ровно на прямой до кольца;
  • FORWARD — если впереди нет никого и укрывать мяч не от кого.

«Впереди» и «слева-справа» считаются относительно направления на кольцо. Если несколько защитников впереди одинаково близко, берите того, кто встретился во вводе раньше.

Пояснение к примеру

Вы в (0, 0), кольцо в (0, 10) — идёте вверх.

Защитник Впереди? Расстояние²
(1, 3) да 10
(-2, 4) да 20
(5, -4) нет, за спиной
(-7, -1) нет, за спиной
(3, 9) да 90

Ближайший впереди — (1, 3), он справа от курса. Значит мяч уходит в левую руку: LEFT.

Пример ввода скачать
0 0
0 10
1 3
-2 4
5 -4
-7 -1
3 9
Ожидаемый вывод скачать
LEFT
Код 0 Б