만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

첫 차 타기

면접 대비

시간 제한2초메모리 제한1024 MB

요약
건물 1에서 건물 N까지 가는 최단 시간을 구합니다. 인도는 언제든 이용할 수 있고, 도로는 시각 K부터 버스로 이동할 수 있습니다.
난이도

보통10점 중 5점

유형
그래프, 최단 경로
정답자
아직 제출이 없습니다

문제

세우는 현재 11번 건물에 있는데 막차를 놓쳤다. 그래서 세우네 집인 NN번 건물까지 걸어가기로 했다. 그러다 세우는 11번 건물에서 출발할 때, 지금부터 정확히 KK분 후에 버스 첫 차가 운행을 시작한다는 사실을 깨달았다.

세우네 도시에는 양방향으로 서로 다른 두 건물을 잇는 XX개의 인도와 YY개의 차도가 있다. 첫 차가 운행을 시작하는 KK분 전에는 인도로만 이동할 수 있다. KK분 후부터는 인도로 이동하거나 버스를 타고 차도로 이동할 수 있다.

세우가 11번 건물에서 출발해 NN번 건물에 도착하는 데 걸리는 최소 시간을 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에 건물의 개수, 버스 첫 차가 운행을 시작하는 시간, 인도의 개수, 차도의 개수를 뜻하는 정수 NN, KK, XX, YY가 공백으로 구분되어 주어진다. (3≤N≤200 0003 \leq N \leq 200\,000; 1≤X,Y≤200 0001 \leq X, Y \leq 200\,000; 1≤K≤1091 \leq K \leq 10^9)

XX개의 줄에 걸쳐, 1+i1+i번째 줄에는 ii번째 인도가 연결하는 두 건물과 이동 시간을 뜻하는 정수 sis_i, eie_i, did_i가 공백으로 구분되어 주어진다. 임의의 ii에 대해 sis_i번 건물에서 eie_i번 건물로 가는 인도는 하나뿐이다. (1≤si,ei≤N1 \leq s_i, e_i \leq N; si≠eis_i \neq e_i; 1≤di≤1091 \leq d_i \leq 10^9)

YY개의 줄에 걸쳐, X+1+iX+1+i번째 줄에는 ii번째 차도가 연결하는 두 건물과 이동 시간을 뜻하는 정수 sis_i, eie_i, did_i가 공백으로 구분되어 주어진다. 임의의 ii에 대해 sis_i번 건물에서 eie_i번 건물로 가는 차도는 하나뿐이다. (1≤si,ei≤N1 \leq s_i, e_i \leq N; si≠eis_i \neq e_i; 1≤di≤1091 \leq d_i \leq 10^9)

11번 건물에서 NN번 건물까지 도착할 수 있음이 보장된다.

출력

첫 번째 줄에 11번 건물에서 출발해 NN번 건물에 도착하는 데 걸리는 최소 시간을 출력한다.

예제1

  1. 예제 1

    입력
    5 4 4 2
    1 4 3
    2 4 2
    2 5 4
    3 5 1
    3 4 1
    2 3 2
    
    예상 출력
    6