방 1에서 방 N까지 가는 최소 시간을 구한다. 추운 방을 떠난 뒤 X분이 지나야 더운 방에 들어갈 수 있고, 그 반대도 마찬가지다.
보통6최단 경로그래프동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB뱀 JOI는 어느 커다란 저택에 길을 잃고 들어왔다. 저택에 사는 사람에게 들키기 전에 저택을 빠져나가야 한다.
이 저택에는 방이 N개 있고 1,2,…,N의 번호가 붙어 있다. 복도는 M개 있으며 i번째 복도(1≤i≤M)는 방 Ai와 방 Bi를 잇는다. JOI는 복도를 양쪽 방향으로 모두 지나갈 수 있고, 복도 i를 지나는 데 Di분이 걸린다. 복도를 지나는 것 말고는 방과 방 사이를 이동할 방법이 없다.
저택의 각 방은 온도가 일정하게 맞춰져 있으며, JOI에게는 너무 춥거나, 쾌적하거나, 너무 덥다. JOI는 급격한 온도 변화를 견디지 못하므로 너무 추운 방을 마지막으로 나온 뒤 X분이 지나기 전에는 너무 더운 방에 들어갈 수 없다. 마찬가지로 너무 더운 방을 마지막으로 나온 뒤 X분이 지나기 전에는 너무 추운 방에 들어갈 수 없다.
JOI는 이동 중에 방에 들어가면 곧바로 그 방을 나와야 한다. 또한 복도 중간에서 되돌아가거나 복도 i를 Di분보다 오래 걸려 지날 수도 없다. 단, 이미 방문한 방에 다시 들어가거나 이미 쓴 복도를 다시 쓰는 것은 허용된다.
JOI는 지금 방 1에 있으며, 이 방은 JOI에게 너무 춥다. JOI는 저택의 출구가 있는 방 N에 들어가면 저택을 빠져나갈 수 있다.
JOI가 저택을 빠져나가는 데 걸리는 최소 시간을 구하시오.
입력은 1+N+M줄로 이루어진다.
첫째 줄에 정수 N, M, X(2≤N≤10000, 1≤M≤20000, 1≤X≤200)가 공백으로 구분되어 주어진다. 저택에 방이 N개, 복도가 M개 있고, JOI가 온도 변화에 적응하는 데 X분이 걸린다는 뜻이다.
다음 N줄 중 i번째 줄(1≤i≤N)에는 방 i의 온도를 나타내는 정수 Ti(0≤Ti≤2)가 주어진다. JOI에게 방 i는 Ti=0이면 너무 춥고, Ti=1이면 쾌적하며, Ti=2이면 너무 덥다. T1=0이 보장된다.
다음 M줄 중 j번째 줄(1≤j≤M)에는 정수 Aj, Bj, Dj(1≤Aj<Bj≤N, 1≤Dj≤200)가 공백으로 구분되어 주어진다. 복도 j가 방 Aj와 방 Bj를 잇고, 지나는 데 Dj분이 걸린다는 뜻이다. 같은 두 방을 잇는 복도가 여러 개 있을 수 있다.
JOI가 저택을 빠져나갈 수 있는 입력만 주어진다.
JOI가 저택을 빠져나가는 데 걸리는 최소 시간(분)을 정수로 한 줄에 출력한다.
예제 1에서는 방을 1→2→3→4→5→6→5→8 순서로 이동하는 것이 가장 빠르다.
예제 2에는 같은 두 방(예를 들어 방 1과 방 5)을 잇는 복도가 여러 개 있다.