가중 무방향 그래프에서 S에서 D까지의 최단 경로를 구하고, 세금 인상으로 모든 간선에 p가 더해질 때마다 최단 경로를 다시 출력한다.
보통5최단 경로그래프그리디정렬아직 제출이 없습니다시간 제한2초메모리 제한256 MB주언이는 경제학을 배워 행상인이 되었다. 두 도시를 오가며 장사를 하는데, 통행료의 합이 가장 적은 경로로 이동하려 한다. 도시는 양방향 도로로 이어져 있고, 도로마다 통행료가 정해져 있다.
정부는 세금 인상안을 발표했다. 세금을 한 번에 올리면 문제가 생기므로 여러 단계에 걸쳐 올린다. 세금이 A만큼 오르면 모든 도로의 통행료가 각각 A만큼 오른다. 세금이 오르면 주언이가 내야 하는 통행료의 합도 달라진다.
주언이를 도와 세금이 오르기 전의 최소 통행료와 세금이 오를 때마다의 최소 통행료를 구하시오.
첫째 줄에 세 정수 N (2≤N≤1000), M (1≤M≤30000), K (0≤K≤30000)가 주어진다. 차례대로 도시의 수, 도로의 수, 세금 인상 횟수이다.
둘째 줄에 두 정수 S와 D (1≤S,D≤N, S=D)가 주어진다. 각각 출발 도시와 도착 도시의 번호이다. 도시 번호는 1부터 시작한다.
다음 M개 줄에는 도로 정보를 나타내는 세 정수 a, b (1≤a<b≤N), w (1≤w≤1000)가 주어진다. 도시 a와 도시 b가 통행료 w인 도로로 이어져 있다는 뜻이다. 같은 두 도시를 잇는 도로가 여러 개 주어질 수도 있다.
그다음 K개 줄에는 정수 p (1≤p≤10)가 한 줄에 하나씩 주어진다. 차례대로 첫 번째, 두 번째, …, K번째로 인상되는 세금이다.
S에서 D로 갈 수 없는 입력은 주어지지 않는다.
첫째 줄에 세금이 오르기 전의 최소 통행료를 출력한다.
이어지는 K개 줄에 차례대로 첫 번째, 두 번째, …, K번째 세금 인상 직후의 최소 통행료를 출력한다.
세금이 오르기 전

첫 번째 세금 인상 후

두 번째 세금 인상 후
