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

Розвернути граф

Розвернути граф

Задано орієнтований граф з $n$ вершин і $m$ ребер. Вершини графа пронумеровані від $1$ до $n$. Знайдіть найменшу кількість ребер, які варто розвернути, щоб існував хоча б один шлях від вершини $1$ до вершини $n$. \InputFile Перший рядок містить два цілих числа $n$ і $m\:(1 \le n, m \le 2 \cdot 10^6)$ --- кількість вершин і ребер. $i$-ий рядок з наступних $m$ рядків містить два цілих числа $x_i$ і $y_i\:(1 \le x_i, y_i \le n)$, що означає, що $i$-е орієнтоване ребро йде від вершини $ x_i$ до вершини $y_i$ \OutputFile Виведіть найменшу кількість ребер, яку слід розвернути. Якщо неможливо отримати жодного шляху від $1$ до $n$, виведіть $-1$. \includegraphics{https://static.e-olymp.com/content/a3/a323657425ee743acea3408abb66e49eb10c4678.gif}
Ліміт часу 6 секунд
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
7 7
1 2
3 2
3 4
7 4
6 2
5 6
7 5
Вихідні дані #1
2