eolymp
bolt
Try our new interface for solving problems

Игра

Ребенок нарисовал \textit{\textbf{N}} (\textit{\textbf{N}} ≤ \textbf{100}) пронумерованных кружков различного цвета. Он соединил некоторые кружки цветными стрелками. Каждая пара кружков при этом могла оказаться соединенной любым количеством стрелок любого цвета. Дадим каждому цвету свой номер, не превосходящий \textbf{100}. Перед началом игры ребенок положил одну фишку на кружок номер \textit{\textbf{L}}, а вторую --- на несовпадающий с первым кружок номер \textit{\textbf{K}}. Финишной считается несовпадающая с ними клетка с номером \textit{\textbf{Q}}. Затем начинается игра по следующим правилам: \begin{itemize} \item Фишку можно передвинуть по стрелке, идущей из ее кружка, если цвет стрелки совпадает с цветом кружка, на котором расположена другая фишка. \item Две фишки никогда не могут находиться на одном и том же кружке в одно и то же время. \item Порядок ходов свободный (т.е. нет необходимости передвигать фишки по очереди). \item Игра заканчивается, когда любая из двух фишек достигнет кружка номер \textit{Q}. \end{itemize} Вы должны написать программу, которая будет определять минимальное число ходов, за которое можно закончить игру, если ее окончание существует. \InputFile Первая строка входного файла содержит числа \textit{\textbf{N}}, \textit{\textbf{L}}, \textit{\textbf{K}}, \textit{\textbf{Q}}, разделенные пробелами. Вторая строка состоит из \textit{\textbf{N}} целых чисел \textit{\textbf{c}}\textbf{_1}, \textit{\textbf{c}}\textbf{_2}, ... , \textit{\textbf{c_N}}, разделенных пробелами, в таком порядке, что \textit{\textbf{c_i}} означает цвет кружка номер \textit{\textbf{i}}. Третья строка состоит из одного числа \textit{\textbf{M}} (\textbf{0} ≤ \textit{\textbf{M}} ≤ \textbf{10000}), обозначающего общее число стрелок. Каждая из следующих \textit{\textbf{M}} строк описывает одну из стрелок. Каждая стрелка описывается тремя целыми числами \textit{\textbf{A_j}}, \textit{\textbf{B_j}}, \textit{\textbf{C_j}}, разделенных пробелами, где \textit{\textbf{A_j}} и \textit{\textbf{B_j}}\textit{ }--- номера кружков (стрелка направлена от кружка \textit{\textbf{A_j}} к \textit{\textbf{B_j}}, а \textit{\textbf{C_j}} обозначает цвет стрелки. \OutputFile Первая строка выходного файла должна содержать слово "\textbf{YES}", если игра может закончиться и "\textbf{NO}" в противном случае. Если ответ на этот вопрос ---"\textbf{YES}", то во второй строке входного файла должно содержаться одно число --- минимальное количество ходов, которое нужно сделать для окончания игры.
Zaman məhdudiyyəti 5 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
5 3 4 1
2 3 2 1 4
8
2 1 2
4 1 5
4 5 2
5 1 3
3 2 2
3 2 4
5 3 1
3 5 1
Çıxış verilənləri #1
YES
3