모든 정점까지의 최단 거리


답안 제출

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

문제 유형

무방향 그래프와 시작 정점 \(R\)이 주어진다. 정점 \(R\)에서 모든 정점까지의 최단 거리를 구해 보자.

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

입력

첫째 줄에 정점의 개수 \(N\), 간선의 개수 \(M\), 시작 정점 \(R\)이 공백으로 구분되어 주어진다.

다음 \(M\)개의 줄에 간선의 양 끝점 \(u\), \(v\)가 공백으로 구분되어 주어진다.

출력

\(N\)개의 줄에 걸쳐 출력한다. \(i\)번째 줄에는 \(R\)에서 정점 \(i\)까지의 최단 거리를 출력한다. 도달할 수 없는 정점은 -1을 출력한다.

제한

  • \(1 \le N \le 1,000\)
  • \(1 \le R \le N\)
  • 정점에는 \(1\)부터 \(N\)까지 번호가 매겨져 있다.
  • 모든 간선은 무방향 간선이다.
  • 셀프 루프는 없다.
  • 같은 두 정점을 잇는 간선은 두 개 이상 주어지지 않는다.

예제 입력 1

6 5 1
1 2
1 3
2 4
3 5
4 5

예제 출력 1

0
1
1
2
2
-1

코멘트

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