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

Королевство магов

Королевство магов

В королевстве магов с древнейших времён есть сеть двусторонних магических порталов между городами. Каждый портал соединяет пару городов и даёт возможность быстро перемещаться из одного города в другой. Города, которые соединены магическим порталом, называются \textit{соседними}. Принц Альберт и принцесса Бетти живут в соседних городах. С раннего детства Альберт и Бетти говорили друг с другом с помощью магических шаров, которые работают с помощью магических порталов между городами. Альберт и Бетти влюблены друг в друга. Они всегда носят с собой шары, чтобы постоянно разговаривать друг с другом. Однако они никогда не видели друг друга и боятся оказаться одновременно в одном и том же городе. Путешествие по королевству - это достаточно тяжелое дело для Альберта и Бетти. Им нужно путешествовать с помощью магических порталов, что достаточно дорого даже для королевских семей. Они могут одновременно использовать пару порталов, чтобы переместиться в другую пару городов, или кто-то один из них может использовать один портал, а другой остаться в том же самом городе. В любой момент их путешествия они должны находится в соседних городах. Также они не могут одновременно использовать один и тот же портал. Напишите программу, которая поможет Альберту и Бетти переместиться из одной пары городов в другую. Требуется найти наиболее дешевый план путешествия, то есть минимизировать количество переходов через порталы. Когда они перемещаются через два портала одновременно, количество переходов через портал считается равным двум. \InputFile В первой строке записаны целые числа \textbf{n}, \textbf{m}, \textbf{a_1}, \textbf{b_1}, \textbf{a_2}, \textbf{b_2}. Здесь \textbf{n} (\textbf{3} ≤ \textbf{n} ≤ \textbf{100}) - количество городов в королевстве (города занумерованы числами от \textbf{1} до \textbf{n}); \textbf{m} (\textbf{2} ≤ \textbf{m} ≤ \textbf{1000}) - количество магических порталов; \textbf{a_1}, \textbf{b_1} (\textbf{1} ≤ \textbf{a_1}, \textbf{b_1} ≤ \textbf{n}, \textbf{a_1} ≠ \textbf{b_1}) - номера соседних городов, в которых Альберт и Бетти соответственно начинают путешествие; \textbf{a_2}, \textbf{b_2} (\textbf{1} ≤ \textbf{a_2}, \textbf{b_2} ≤ \textbf{n}, \textbf{a_2} ≠ \textbf{b_2}) - номера соседних городов, куда Альберт и Бетти соответственно хотят попасть. (\textbf{a_1} ≠ \textbf{a_2} или \textbf{b_1} ≠ \textbf{b_2}). Следующие \textbf{m} строк описывают порталы. В каждой строке записаны два числа \textbf{p_i1} и \textbf{p_i2} (\textbf{1} ≤ \textbf{p_i1}, \textbf{p_i2} ≤ \textbf{n}, \textbf{p_i1} ≠ \textbf{p_i2}) - номера городов, соединенных порталом. Любые два города соединены не более чем одним порталом. \OutputFile В первой строке выведите два числа \textbf{c} и \textbf{k}. Здесь \textbf{c} обозначает минимальное количество использований портала; \textbf{k} обозначает количество пар соседних городов, которые Альберт и Бетти посетят во время своего путешествия, включая \textbf{a_1}, \textbf{b_1} в начале и \textbf{a_2}, \textbf{b_2} в конце. Затем выведите \textbf{k} строк, по два целых числа \textbf{a'}_i и \textbf{b'}_i в каждой - последовательные различные пары соседних городов, которые Альберт и Бетти посетят в течение путешествия. Если есть несколько самых дешевых планов путешествия, выведите любой из них. Гарантируется, что решение существует.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
4 5 1 2 2 1
1 2
2 3
3 4
4 1
1 3
Çıxış verilənləri #1
3 3
1 2
1 3
2 1