시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB68122817934.423%

문제

파댕이는 중견기업 회사에서 직장인으로 일하고 있다. 사장님이 직장인 파댕이를 무척 아끼기 때문에, 파댕이는 사장실에 찾아가 사장님께 인사를 하려고 한다.

직장인 파댕이의 회사가 있는 건물은 $K$층으로 구성되어 있는데 각 층은 복도로 구성되어 있다. 복도를 통해 방과 방 사이를 양방향으로 이동할 수 있다. 모든 층은 같은 모습을 하고 있다. 파댕이는 현재 $1$층의 $1$번 방에 있고, 사장실은 $K$층의 $N$번 방이다. 파댕이는 현재 자신의 위치에서부터 사장실까지 최소 시간을 사용하여 도착할 방법을 찾아야 한다.

파댕이는 각각의 복도를 지나가는 데 걸리는 시간이 얼마인지 알고 있다. 더불어 어떤 방에는 엘리베이터가 있어서 그 엘리베이터를 타고 위층으로 올라갈 수 있다. 한 층의 $i$번 방에 설치된 엘리베이터는 다른 층에 있는 모든 $i$번 방을 연결한다. 특정 엘리베이터에만 사람이 몰릴 수 있기 때문에 어떤 엘리베이터는 빠르고 어떤 엘리베이터는 느릴 수 있다. 파댕이는 각각의 엘리베이터가 한 층을 올라가는 데 걸리는 시간이 얼마인지도 알고 있다.

건물의 모습과 엘리베이터의 속도가 주어지면, 파댕이가 사장실까지 가는 최소 시간을 계산하는 프로그램을 작성하시오.

입력

첫째 줄에 방의 수 $N (2 \leq N \leq 100,000)$과 복도의 수 $M (1 \leq M \leq 300,000)$, 건물의 층수 $K (2 \leq K \leq 200,000)$가 공백으로 구분되어 주어진다.

다음 줄부터 $M$개의 줄에 걸쳐 세 정수 $u, v, c$가 공백으로 구분되어 주어진다. $(1 \leq u, v \leq N, 1 \leq c \leq 100,000,000, u \neq v)$ 이는 $u$번 방과 $v$번 방을 잇는 복도가 존재하며 이를 지나가는 데 걸리는 시간이 $c$라는 뜻이다.

임의의 서로 다른 두 방에 대해 한쪽 방에서 다른 쪽 방으로 이어진 복도는 $1$개 이하다.

다음 줄에 $N$개의 정수 $e_1, \cdots, e_N$이 공백으로 구분되어 주어진다. $(e_i = -1 \mbox{ or } 1 \leq e_i \leq 100,000,000)$ 이는 $i$번째 방에 존재하는 엘리베이터를 타면 한 층을 올라갈 때마다 $e_i$의 시간이 든다는 뜻이다. 만약 $i$번째 방에 엘리베이터가 존재하지 않는다면, $e_i = -1$이다.

출력

파댕이가 사장실까지 가는 최소 시간을 출력한다. 만약 파댕이가 사장실에 도달할 수 없다면 $-1$을 출력한다.

예제 입력 1

5 7 4
1 2 7
1 3 11
1 4 7
2 3 13
2 4 4
2 5 16
4 5 10
3 -1 1 3 -1

예제 출력 1

26

예제 입력 2

3 2 7
1 2 3
2 3 8
-1 -1 -1

예제 출력 2

-1

출처

Contest > BOJ User Contest > 파댕이컵 > 파댕이컵 G번