Codeforces Beta Round 55 (Div. 2) |
---|
Закончено |
В Древней Берляндии n городов и m двунаправленных дорог одинаковой длины. Города пронумерованы целыми числами от 1 до n включительно. Согласно древней примете, если путешественник посетит подряд (не заходя ни в какие другие) три города ai, bi, ci, его ждет большая беда. И всего есть k таких троек городов. Каждая тройка является упорядоченной, это означает, что, например, посещать города в порядке ai, ci, bi можно. Вася хочет попасть из города 1 в город n, не нарушая приметы. Выясните, какое наименьшее число дорог ему нужно пройти. Также требуется найти один из его возможных маршрутов.
В первой строке записаны три целых числа n, m, k (2 ≤ n ≤ 3000, 1 ≤ m ≤ 20000, 0 ≤ k ≤ 105) — количество городов, количество дорог и количество запрещенных троек соответственно.
Далее следует m строк по два целых числа xi, yi (1 ≤ xi, yi ≤ n) — описания дорог. Дорога описывается номерами городов, которые она соединяет. Никакая дорога не соединяет город с самим собой, между парой городов может быть не более одной дороги.
Далее следует k строк по три целых числа ai, bi, ci (1 ≤ ai, bi, ci ≤ n) — запрещенные тройки. Каждая упорядоченная тройка перечислена не более одного раза. Все три города в каждой тройке попарно различны.
Город n может быть недостижим из города 1 по дорогам.
Если пути из 1 в n не существует, выведите -1. Иначе в первой строке выведите количество дорог d в кратчайшем пути из города 1 в город n. Во второй строке выведите d + 1 чисел — любой из возможных кратчайших маршрутов Васи. Маршрут должен начинаться с города 1 и заканчиваться в городе n.
4 4 1
1 2
2 3
3 4
1 3
1 4 3
2
1 3 4
3 1 0
1 2
-1
4 4 2
1 2
2 3
3 4
1 3
1 2 3
1 3 4
4
1 3 2 3 4
Название |
---|