만드는 중입니다

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

Drifting

면접 대비

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

요약
간선 쌍 (a, b, c)가 금지된 방향 비순환 그래프에서 1번 정점부터 N번 정점까지의 최소 가중치 경로를 구합니다.
난이도

보통10점 중 5점

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

문제

가중치가 있는 방향 그래프가 주어진다. 정점은 NN개, 간선은 MM개이다. ii번째 간선은 정점 uiu_i에서 정점 viv_i로 향하며 가중치는 wiw_i이다. 모든 간선은 ui<viu_i < v_i를 만족한다.

정수 세 개로 이루어진 묶음이 KK개 주어진다. ii번째 묶음은 (ai,bi,ci)(a_i, b_i, c_i)이며 ai<bi<cia_i < b_i < c_i이다.

정점 11에서 출발해 간선을 따라 이동하여 정점 NN에 도달하려 한다. 정점 aia_i에서 bib_i로 바로 이동했다면, 다음에 이동할 정점은 cic_i가 아니어야 한다.

정점 NN에 도달할 수 있는지 판단하라. 도달할 수 있다면 지나는 간선 가중치의 합이 최소가 되는 값을 구하라.

입력

첫째 줄에 NN과 MM이 주어진다. 이어서 MM개의 줄에 uiu_i, viv_i, wiw_i가 주어진다. 다음 줄에 KK가 주어지고, 이어서 KK개의 줄에 aia_i, bib_i, cic_i가 주어진다.

출력

정점 NN에 도달할 수 없으면 −1-1을 출력한다. 그렇지 않으면 지나는 간선 가중치 합의 최솟값을 출력한다.

제한

  • 3≤N≤2×1053 \le N \le 2 \times 10^5
  • 0≤M≤2×1050 \le M \le 2 \times 10^5
  • 모든 ii에 대해 1≤ui<vi≤N1 \le u_i < v_i \le N
  • 서로 다른 i,ji, j에 대해 (ui,vi)≠(uj,vj)(u_i, v_i) \ne (u_j, v_j)
  • 1≤wi≤1091 \le w_i \le 10^9
  • 0≤K≤2×1050 \le K \le 2 \times 10^5
  • 모든 ii에 대해 1≤ai<bi<ci≤N1 \le a_i < b_i < c_i \le N

힌트

첫 번째 예제에서 최선의 이동은 1→3→41 \rightarrow 3 \rightarrow 4이다. 두 번째 예제에서 최선의 이동은 1→2→4→6→71 \rightarrow 2 \rightarrow 4 \rightarrow 6 \rightarrow 7이다.

예제3

  1. 예제 1

    입력
    4 4
    1 2 1
    1 3 2
    2 4 2
    3 4 2
    1
    1 2 4
    
    예상 출력
    4
    
  2. 예제 2

    입력
    7 8
    1 2 5
    1 3 2
    2 4 1
    3 4 1
    4 5 6
    4 6 2
    5 7 1
    6 7 1
    2
    2 4 5
    3 4 6
    
    예상 출력
    9
    
  3. 예제 3

    입력
    3 2
    1 2 1
    2 3 1
    1
    1 2 3
    
    예상 출력
    -1