두 정점 사이의 최단 거리


답안 제출

Points: 10
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

무방향 그래프에서 두 정점 사이의 거리는 한 정점에서 다른 정점으로 이동할 때 지나야 하는 간선 개수의 최솟값이다.

두 정점 \(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

코멘트

현재 작성된 코멘트가 없습니다.