Майже найкоротший шлях#10116

Майже найкоротший шлях

1 секунда
128 мегабайтів
Легка

У вас є неорієнтований неваговий граф з двома виділеними вершинами і . Відстань найкоротшого шляху між і позначимо як . Майже найкоротший шлях від до — це шлях найменшої можливої довжини, який не використовує жодного ребра, що може бути частиною шляху довжини . Ваше завдання — знайти довжину цього майже найкоротшого шляху або вивести -1, якщо такий шлях не існує.

Вхідні дані

Перший рядок містить чотири цілі числа: кількість вершин , кількість ребер (, m \le 10^5), а також номери вершин і (1 \le s, t \le n). Кожен з наступних рядків містить два цілі числа і , які визначають неорієнтоване ребро (, ).

Вихідні дані

Виведіть довжину майже найкоротшого шляху між вершинами і . Якщо такого шляху не існує, виведіть -1.

Приклади

Приклад 1

Loading
Loading

Примітка

prb10116.gif

Найкоротший шлях між вершинами і має довжину . Ребра, які можуть бути частиною найкоротшого шляху, виділені червоним. Майже найкоротший шлях — це найкоротший шлях, що не проходить через жодне з цих червоних ребер. Він виділений синім кольором, і його довжина становить .