만드는 중입니다

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

물자 조달

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

요약
중간 부대의 검문 시간을 포함해 두 부대 사이의 최단 이동 시간을 구하며, 공격으로 검문 시간이 늘어나는 갱신을 처리합니다.
난이도

보통10점 중 7점

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

문제

현재 A국과 B국은 서로 전쟁 중이다. A국의 운전병 해찬이는 조국의 승리를 위해 출발 부대에서 도착 부대까지 물자를 조달하는 임무를 맡았다.

A국에는 11부터 NN까지 번호가 매겨진 NN개의 부대가 있으며, 각 부대는 도로로 연결되어 있다. 각 도로를 지나는 데는 일정한 시간이 걸린다.

각 부대는 보안을 위해 들어오는 차량을 검문한다. 부대 ii에서 검문하는 데 tit_i의 시간이 걸린다. 다만 출발 부대와 도착 부대에는 미리 공문이 내려가 있어서 검문 시간이 걸리지 않는다.

B국은 A국의 부대를 하나씩 목표로 삼아 습격한다. 습격을 받은 부대는 보안이 강화되어 검문 시간이 늘어난다. B국이 공격 목표를 다른 부대로 바꾸면, 이전에 목표였던 부대는 다시 공격하지 않는다.

다음과 같은 QQ개의 쿼리에 답하여 해찬이를 도와 A국의 승리를 이끌자.

  • 11 rr cc: B국이 rr번 부대를 공격하여 rr번 부대의 검문 시간이 cc만큼 늘어난다.
  • 22 aa bb: aa번 부대에서 bb번 부대까지 가는 최소 시간을 출력한다. 도달할 수 없으면 -1을 출력한다.

입력

첫 번째 줄에 부대의 수 NN, 도로의 수 MM, 쿼리의 수 QQ가 공백으로 구분되어 주어진다.

두 번째 줄에 각 부대의 검문 시간을 나타내는 NN개의 정수 t1,⋯ ,tNt_1, \cdots, t_N이 공백으로 구분되어 주어진다.

이후 MM개의 줄에 uu, vv, ww가 공백으로 구분되어 주어진다. 이는 uu번 부대와 vv번 부대 사이에 ww의 시간이 걸리는 양방향 도로가 있다는 뜻이다.

마지막 QQ개의 줄에는 위에서 설명한 두 종류의 쿼리가 한 줄에 하나씩 주어진다.

출력

2번 쿼리마다 그 답을 한 줄에 하나씩 출력한다.

제한

  • 2≤N≤2002 \le N \le 200
  • 1≤M≤N(N−1)21 \le M \le \frac{N(N-1)}{2}
  • 1≤Q≤1061 \le Q \le 10^6
  • 1≤ti≤1041 \le t_i \le 10^4
  • 1≤u,v≤N1 \le u, v \le N; u≠vu \neq v
  • 1≤w≤1071 \le w \le 10^7
  • 1≤r≤N1 \le r \le N
  • 1≤c≤1001 \le c \le 100
  • 1≤a,b≤N1 \le a, b \le N; a≠ba \neq b
  • 모든 입력은 정수이다.

예제2

  1. 예제 1

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

    입력
    5 4 3
    2 7 3 5 8
    1 3 2
    5 1 3
    1 4 8
    5 3 1
    2 1 4
    1 1 10
    2 3 2
    
    예상 출력
    8
    -1