eolymp
bolt
Try our new interface for solving problems
Məsələlər

Робот

Робот

Некоторый заводской цех представляет собой прямоугольник размером \textbf{M} на \textbf{N} метров \textbf{(1 ≤ M, N ≤ 30)}. Инженер-конструктор Петя создал робота, который может перемещаться по территории цеха и выполнять некоторую общественно-полезную работу. Робот может перемещаться только по плитам, размером \textbf{1} на \textbf{1} метр, которыми выложен пол цеха, и только параллельно осям координат. У робота есть \textbf{4} регистра состояния, \textbf{A,}\textit{\textbf{ }}\textbf{B, C} и \textbf{D}. Каждый регистр может принимать одно из двух значений - \textbf{TRUE} или \textbf{FALSE}. На некоторых плитах цеха стоят радио-триггеры, которые переключают состояние каких-то регистров робота. Также на некоторых других плитах могут находиться радиомаяки, которые в зависимости от истинности формулы, соответствующей данному маяку, заставляют робота повернуть на \textbf{90} градусов налево или направо. В случае истинности совершается поворот направо. Спецслужбы заинтересовались разработкой Пети, и решили проверить пригодность робота для работ в условиях радиации, под водой, в кратерах вулканов, на других планетах и много где еще. Для испытаний из цеха было вынесено все оборудование, поставлено некоторое количество радиомаяков и триггеров. Начиная с некоторой пустой плиты \textbf{X_0, Y_0} под начальным углом \textbf{A_0 }(\textbf{0,90,180} или \textbf{270 }градусов, отсчитывая от направления вверх по часовой стрелке) был запущен робот. Изначально состояния всех регистров робота - \textbf{FALSE}. Аккумуляторных батарей робота хватит на \textbf{K (0 < K ≤ 10^9)} перемещений на соседнюю плиту. После этого он остановится. Кроме того, возможен такой вариант, что Петя неправильно расставил триггеры и маяки, поэтому на некотором шаге робот врежется в стену цеха. Необходимо определить, уцелеет ли робот после испытаний и на какой клетке он остановится в случае положительного ответа на первый вопрос. Оси координат направлены из левого верхнего угла - точки (\textbf{1,1}) - соответственно вправо и вниз. \textbf{M} - размер цеха по горизонтали, а \textbf{N} - по вертикали. Количество триггеров - \textbf{P}\textit{\textbf{ }}- не превосходит \textbf{10000}, а радиомаяков - \textbf{Q}\textit{\textbf{ - 25}}. \includegraphics{https://static.e-olymp.com/content/98/984833b6e91092841f5bbfb824238b48184101ab.jpg} \InputFile На первой строке входного файла записаны \textbf{8} чисел - \textbf{M, N, P, Q, K, X_0, Y_0, A_0}. Далее на \textbf{Р} строках записаны триггеры в формате "\textbf{X Y R}", где \textbf{R} - название регистра. Далее на \textbf{Q} строках записаны радиомаяки в формате "\textbf{X Y F}", где \textbf{F} - булева функция от переменных \textbf{A..D} длиной не более \textbf{250} символов, заданная корректной формулой, причем: \begin{itemize} \item \textbf{A}, \textbf{B}, \textbf{C}, \textbf{D}, \textbf{TRUE}, \textbf{FALSE} -- корректные формулы \item Если \textbf{F} -- корректная формула, то "\textbf{(F)}" и "\textbf{NOT F}" -- корректные формулы \item Если \textbf{F} и \textbf{G} -- корректные формулы, то "\textbf{F AND G}", "\textbf{F OR G}" и "\textbf{F XOR G}" -- корректные формулы. Операция \textbf{NOT} имеет наивысший приоритет, остальные операции имеют одинаковые приоритеты и выполняются слева направо, т.е. \textbf{A AND NOT B OR C XOR D} эквивалентно \textbf{(((A AND (NOT B)) OR C) XOR D)} \item регистр букв не имеет значения \item корректная формула не содержит лишних пробелов. \end{itemize} \OutputFile В случае успешного исхода вывести координаты плиты, где остановится робот. В случае краха эксперимента вывести в выходной файл единственное число "\textbf{-1}". \textbf{Комментарий} В соответствии с рисунком, робот будет двигаться по "восьмерке" суммарной длиной \textit{\textbf{42}} метра. Следовательно, прохождение \textbf{42n}+\textbf{1} метра эквивалентно прохождению \textbf{1} метра, т.е. робот остановится на плите с координатами "\textbf{3 5}".
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
8 8 1 9 420000001 3 4 180
3 3 A
3 5 FALSE
6 5 FALSE
6 2 FALSE
3 2 A
3 1 FALSE
1 1 FALSE
1 8 FALSE
2 8 FALSE
2 2 TRUE
Çıxış verilənləri #1
3 5