eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

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

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

У королівстві магів з давніх часів є мережа двосторонніх магічних порталів між містами. Кожен портал з'єднує пару міст і дає можливість швидко переміщуватись з одного міста в інше. Міста, які з'єднано магічним порталом, називаються \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 у кожному - послідовні відмінні пари сусідніх міст, які Альберт та Бетті відвідають протягом подорожі. Якщо є декілька самих дешевих планів подорожі, виведіть довільний з них. Гарантується, що розв'язок існує.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
4 5 1 2 2 1
1 2
2 3
3 4
4 1
1 3
Вихідні дані #1
3 3
1 2
1 3
2 1