10049 최단 경로 Gold IV

시간 제한: 2초 메모리 제한: 256MB

문제

방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 자연수이다.

입력

첫째 줄에 정점의 개수 V (1 ≤ V ≤ 20,000)와 간선의 개수 E (1 ≤ E ≤ 300,000)가 주어진다. 둘째 줄에는 시작 정점의 번호 K (1 ≤ K ≤ V)가 주어진다. 셋째 줄부터 E개의 줄에 각 간선의 정보 u, v, w가 주어진다. u에서 v로 가는 가중치 w의 간선이 존재한다. (1 ≤ w ≤ 10)

출력

첫째 줄부터 V개의 줄에 걸쳐, i번째 줄에 시작점에서 i번 정점까지의 최단 경로값을 출력한다. 시작점 자신은 0으로, 경로가 없으면 INF를 출력한다.

예제 입출력

예제 입력 1
5 6
1
5 1 1
1 2 2
1 3 3
2 3 4
2 4 5
3 4 6
예제 출력 1
0
2
3
7
INF
solution.cpp
에디터 불러오는 중...