Короткая дорога курьера
Просмотр в формате PDFВ городе есть n перекрестков, пронумерованных от 1 до n, и m двусторонних дорог между ними. Курьеру нужно доставить письмо, выехав с перекрестка s и добравшись до перекрестка t.
Каждая дорога соединяет ровно два перекрестка, а проезд по любой дороге считается за один участок пути. Требуется определить минимальное количество дорог, которое должен проехать курьер, чтобы попасть из s в t.
Если добраться до нужного перекрестка невозможно, выведите -1.
Входные данные
Первая строка содержит четыре целых числа n, m, s, t — количество перекрестков, количество дорог, номер перекрестка отправления и номер перекрестка назначения.
В следующих m строках содержатся описания дорог. Каждая дорога задается двумя целыми числами u и v — номерами перекрестков, которые она соединяет.
Выходные данные
Выведите одно целое число — минимальное количество дорог, которое нужно проехать курьеру, чтобы доставить письмо из s в t, либо -1, если такого маршрута не существует.
Ограничения
1 <= n <= 1000000 <= m <= 2000001 <= s, t <= n1 <= u, v <= n- Дороги двусторонние.
- Дорога не соединяет перекресток сам с собой.
- Между одной и той же парой перекрестков не более одной дороги.
Примеры
Пример 1
Входные данные
2 1 1 2
1 2
Выходные данные
1
Пример 2
Входные данные
5 3 2 2
1 2
2 3
4 5
Выходные данные
0
Комментарии