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.