만드는 중입니다

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

투표 도시

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

요약
시작 도시와 다섯 티켓의 가격이 주어질 때, 각 티켓을 한 번씩만 한 도로에 적용해 투표 도시까지 가는 최소 비용을 구합니다.
난이도

어려움10점 중 8점

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

문제

위대한 황제 Lord Pooty가 은퇴를 결심하고, 많은 아들 중 한 명에게 왕관을 넘기려 합니다. 민주주의의 정신에 따라 투표로 후계자를 정하기로 했습니다.

왕국에는 0부터 N−1N - 1까지 번호가 붙은 NN개의 도시가 있습니다. 이 가운데 KK개는 투표 도시이며, ii번째 투표 도시는 TiT_i입니다.

시민으로서 여러분은 지정된 투표 도시 중 한 곳으로 이동해 투표합니다. 도로는 EE개이며, jj번째 도로는 도시 UjU_j에서 도시 VjV_j로 한 방향으로 이어지고 통행료는 CjC_j입니다. 지역 도시들은 이동 비용을 줄이기 위해 티켓 제도를 열었습니다.

티켓은 1번부터 5번까지 다섯 종류가 있습니다. xx번 티켓을 사용하면 해당 도로의 통행료가 (10x)%(10x)\% 줄어듭니다. 즉, 그 티켓을 쓰면 통행료가 (1−x10)\left(1 - \frac{x}{10}\right)배가 됩니다.

티켓에는 규칙이 있습니다. 한 도로에 티켓을 두 장 이상 겹쳐 쓸 수 없습니다. 여정을 시작할 때 종류별로 최대 한 장만 살 수 있습니다. 예를 들어 1번 티켓 한 장과 2번 티켓 한 장은 살 수 있지만, 2번 티켓 두 장은 살 수 없습니다. 이는 티켓을 사재기하지 못하게 하려는 것입니다. 티켓은 여정 시작 시점에만 살 수 있습니다.

여러분은 바빠서 출발 도시와 티켓 가격을 미리 알지 못합니다. 출발 도시 SS와 1번부터 5번까지 티켓 가격 P1P_1부터 P5P_5로 이루어진 상황을 QQ개 정리했습니다. 티켓을 구할 수 없을 수도 있으며, 이때 가격은 −1-1입니다.

각 상황에서 도로로 도달할 수 있는 투표 도시 중 가장 적은 비용을 구하세요. 모든 도시가 서로 도달할 수 있는 것은 아니므로 걸어가야 할 수도 있습니다.

입력

첫 줄에 정수 NN, EE, KK가 차례로 주어집니다. 각각 도시 수, 도로 수, 투표 도시 수입니다. 둘째 줄에는 KK개의 정수가 주어지며, ii번째 값이 투표 도시 TiT_i입니다.

이어지는 EE개의 줄에는 정수 세 개 UjU_j, VjV_j, CjC_j가 주어집니다. 이는 UjU_j에서 VjV_j로 가는 일방통행 도로이며 통행료는 CjC_j입니다.

다음 줄에는 상황의 수 QQ가 주어집니다. 이어지는 QQ개의 줄에는 정수 여섯 개 SS, P1P_1, P2P_2, P3P_3, P4P_4, P5P_5가 주어집니다. SS는 출발 도시이고, PxP_x는 xx번 티켓의 가격입니다.

프로그램은 표준 입력에서 읽어야 합니다.

출력

QQ개의 줄에 상황마다 정수 하나씩을 입력 순서대로 출력합니다. 각 정수는 해당 상황에서 투표 도시에 이르는 최소 비용입니다. 출발 도시에서 어떤 투표 도시에도 도달할 수 없으면 −1-1을 출력합니다.

프로그램은 표준 출력에 씁니다.

제한

  • 1≤N≤50001 \le N \le 5000
  • 0≤E≤100000 \le E \le 10000
  • 1≤Q≤1001 \le Q \le 100
  • 0≤K≤N0 \le K \le N
  • 모든 1≤i≤K1 \le i \le K에 대해 0≤Ti<N0 \le T_i < N
  • 모든 1≤i<j≤K1 \le i < j \le K에 대해 Ti≠TjT_i \ne T_j
  • 모든 1≤i≤E1 \le i \le E에 대해 1≤Ci≤1091 \le C_i \le 10^9
  • 모든 1≤i≤E1 \le i \le E에 대해 CiC_i는 1010의 배수
  • 모든 1≤i≤E1 \le i \le E에 대해 0≤Ui,Vi<N0 \le U_i, V_i < N이고 Ui≠ViU_i \ne V_i
  • 모든 1≤i≤51 \le i \le 5에 대해 −1≤Pi≤109-1 \le P_i \le 10^9

예제3

  1. 예제 1

    입력
    3 2 1
    2
    0 1 100
    1 2 200
    1
    0 10 20 1000 2000 -1
    
    예상 출력
    280
    
  2. 예제 2

    입력
    2 0 1
    1
    1
    0 -1 -1 -1 -1 -1
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    6 3 2
    4 5
    0 4 100
    1 4 200
    2 5 300
    4
    0 -1 -1 -1 -1 -1
    1 20 40 10 100 4
    2 1 2 3 4 0
    3 0 -1 0 0 0
    
    예상 출력
    100
    104
    150
    -1