두 정점 사이의 최단 거리
무방향 그래프에서 두 정점 사이의 거리는 한 정점에서 다른 정점으로 이동할 때 지나야 하는 간선 개수의 최솟값이다.
두 정점 \(A\), \(B\) 사이의 최단 거리를 구해 보자.
입력
첫째 줄에 정점의 개수 \(N\)과 간선의 개수 \(M\)이 공백으로 구분되어 주어진다.
다음 \(M\)개의 줄에 간선의 양 끝점 \(u\), \(v\)가 공백으로 구분되어 주어진다.
마지막 줄에 두 정점 \(A\), \(B\)가 공백으로 구분되어 주어진다.
출력
\(A\)와 \(B\) 사이의 최단 거리를 출력한다. \(A\)에서 \(B\)에 도달할 수 없다면 -1을 출력한다.
제한
- \(1 \le N \le 1,000\)
- \(1 \le A,B \le N\)
- 정점에는 \(1\)부터 \(N\)까지 번호가 매겨져 있다.
- 모든 간선은 무방향 간선이다.
- 셀프 루프는 없다.
- 같은 두 정점을 잇는 간선은 두 개 이상 주어지지 않는다.
예제 입력 1
6 6
1 2
1 3
2 4
3 4
4 5
2 5
1 5
예제 출력 1
2
예제 입력 2
4 1
1 2
1 4
예제 출력 2
-1
코멘트