Подразделы

Дата и время

25/04/2024 16:24:51

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printЛето 3

printA. Стена

Ограничения: время – 5s/10s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Чтобы защитить свою страну от набегов кочевников, президент Флатландии решил построить Великую Флатландскую Стену. Страна Флатландия представляет собой координатную плоскость, ее столица находится в точке (0, 0). Именно из столицы и планируется начать строительство стены. Министру внутренних дел срочно поручили составить план постройки стены.
План постройки стены представляет собой последовательность инструкций строителям. Инструкции бывают следующего вида:
<направление строительства> <длина>
<направление перемещения> <расстояние>
В первом случае строители возводят стену указанной длины от точки, где они находятся, в указанном направлении. Во втором случае строители перемещаются на указанное расстояние в указанном направлении, не возводя при этом стены.
Направление строительства задается заглавной латинской буквой, а направление перемещения – строчной латинской буквой. Соответствие букв направлениям приведено в следующей таблице:
БукваНаправлениеВектор
N nСевер(0, 1)
E eВосток(1, 0)
S sЮг(0, –1)
W wЗапад(-1, 0)
Длина и перемещение задаются в километрах и представляют собой целые числа.
Однако оказалось, что план министра может оказаться невыполнимым – в некоторый момент строители при выполнении инструкции могут столкнуться с уже построенной ими стеной! Выясните, выполним ли план министра и если нет, выведите координаты точки, в которой впервые произойдет столкновение с уже построенной стеной.
На первой строке ввода расположено число `N` – количество инструкций в плане министра `(0\ ≤\ N\ ≤\ 1000)`. Последующие `N` строк содержат инструкции плана. Их формат следующий: сначала идет одна из допустимых букв, заглавная буква означает, что следует строить стену, а строчная – что следует просто переместиться. Затем, отделенное от буквы ровно одним пробелом, идет целое число `X_i`  – какой длины следует строить стену, либо на сколько надо переместиться `(1\ ≤\ X_i\ ≤\ 10^6)`.

Пример ввода 1

4
N 4
e 3
S 2
w 1

Пример вывода 1

yes

Пример ввода 2

4
N 4
e 3
S 2
w 3

Пример вывода 2

no
0 2
Источник: IX командный чемпионат школьников Санкт-Петербурга по программированию
loading