만드는 중입니다

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

금지된 회전

면접 대비

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

요약
방향 그래프에서 금지된 회전 (x, y, z)를 연속으로 지나지 않고 v에서 w까지 가는 최단 거리를 구합니다.
난이도

보통10점 중 5점

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

문제

ICPC(International Control Perfection Company)는 교통망을 위한 자동차 내비게이션 시스템을 설계한다. 이 시스템은 교통망을 간선 비용 cc가 붙은 방향 그래프 G(V,E)G(V, E)로 나타낸다. 방향 간선 (v,w)∈E(v, w) \in E에 대해 c(v,w)c(v, w)는 장소 vv에서 장소 ww까지의 거리이다. 회사는 이 시스템에 들어갈 최단 경로 모듈을 구현하려고 한다. 교차로에서는 일부 방향으로 회전할 수 없으므로, 금지된 회전을 부분 경로로 포함하지 않는 최단 경로를 찾아야 한다.

vv에서 ww까지의 경로는 v1=vv_1 = v, vk=wv_k = w이고 1≤i≤k−11 \le i \le k-1에 대해 (vi,vi+1)∈E(v_i, v_{i+1}) \in E인 수열 (v1,v2,⋯ ,vk)(v_1, v_2, \cdots, v_k)이다. 일반적인 정의와 달리 경로에서 같은 정점을 반복해도 된다. 부분 경로는 경로의 연속된 부분 수열이다. 금지된 회전은 (x,y)∈E(x, y) \in E이고 (y,z)∈E(y, z) \in E인 세 쌍 (x,y,z)(x, y, z)이다. 경로 (v1,⋯ ,vk)(v_1, \cdots, v_k)의 거리는 ∑i=1k−1c(vi,vi+1)\sum_{i=1}^{k-1} c(v_i, v_{i+1})이다. vv에서 ww까지의 최단 경로는 거리가 가장 작은 경로이다. vv에서 vv까지의 최단 경로 거리는 0이며, 이 경로는 금지된 회전을 하나도 포함하지 않는다.

방향 그래프, 금지된 회전의 집합 FF, 두 정점 vv와 ww가 주어졌을 때, 모든 금지된 회전을 피하는 vv에서 ww까지 최단 경로의 거리를 구하라. 각 정점의 출차수는 최대 10이다.

입력

첫 줄에 정수 mm, nn, kk가 주어진다 (0≤m≤10n0 \le m \le 10n, 1≤n≤300001 \le n \le 30000, 0≤k≤5000000 \le k \le 500000). mm은 방향 간선의 수, nn은 정점의 수, kk는 금지된 회전의 수이다. 정점은 0부터 n−1n-1까지 번호가 매겨져 있다. 둘째 줄에는 출발 정점 vv와 도착 정점 ww가 주어진다. 이어지는 mm개 줄에는 xix_i, yiy_i, cic_i가 주어지며, 간선 (xi,yi)(x_i, y_i)와 그 비용 cic_i를 뜻한다 (0≤xi0 \le x_i, xi≠yi≤n−1x_i \ne y_i \le n-1, 0≤ci≤1030 \le c_i \le 10^3). 마지막 kk개 줄에는 금지된 회전 (xi,yi,zi)(x_i, y_i, z_i)가 주어진다.

출력

금지된 회전을 모두 피하는 vv에서 ww까지 최단 경로의 거리를 한 줄에 출력한다. 그런 경로가 없으면 -1을 출력한다.

예제3

  1. 예제 1

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

    입력
    4 4 1
    0 3
    0 1 2
    1 2 3
    0 2 7
    2 3 10
    0 1 2
    
    예상 출력
    17
    
  3. 예제 3

    입력
    4 4 0
    0 3
    0 1 2
    1 2 3
    0 2 7
    2 3 10
    
    예상 출력
    15