물자 조달
시간 제한1초메모리 제한1024 MB
중간 부대의 검문 시간을 포함해 두 부대 사이의 최단 이동 시간을 구하며, 공격으로 검문 시간이 늘어나는 갱신을 처리합니다.
문제
현재 A국과 B국은 서로 전쟁 중이다. A국의 운전병 해찬이는 조국의 승리를 위해 출발 부대에서 도착 부대까지 물자를 조달하는 임무를 맡았다.
A국에는 부터 까지 번호가 매겨진 개의 부대가 있으며, 각 부대는 도로로 연결되어 있다. 각 도로를 지나는 데는 일정한 시간이 걸린다.
각 부대는 보안을 위해 들어오는 차량을 검문한다. 부대 에서 검문하는 데 의 시간이 걸린다. 다만 출발 부대와 도착 부대에는 미리 공문이 내려가 있어서 검문 시간이 걸리지 않는다.
B국은 A국의 부대를 하나씩 목표로 삼아 습격한다. 습격을 받은 부대는 보안이 강화되어 검문 시간이 늘어난다. B국이 공격 목표를 다른 부대로 바꾸면, 이전에 목표였던 부대는 다시 공격하지 않는다.
다음과 같은 개의 쿼리에 답하여 해찬이를 도와 A국의 승리를 이끌자.
- : B국이 번 부대를 공격하여 번 부대의 검문 시간이 만큼 늘어난다.
- : 번 부대에서 번 부대까지 가는 최소 시간을 출력한다. 도달할 수 없으면
-1을 출력한다.
입력
첫 번째 줄에 부대의 수 , 도로의 수 , 쿼리의 수 가 공백으로 구분되어 주어진다.
두 번째 줄에 각 부대의 검문 시간을 나타내는 개의 정수 이 공백으로 구분되어 주어진다.
이후 개의 줄에 , , 가 공백으로 구분되어 주어진다. 이는 번 부대와 번 부대 사이에 의 시간이 걸리는 양방향 도로가 있다는 뜻이다.
마지막 개의 줄에는 위에서 설명한 두 종류의 쿼리가 한 줄에 하나씩 주어진다.
출력
2번 쿼리마다 그 답을 한 줄에 하나씩 출력한다.
제한
- ;
- ;
- 모든 입력은 정수이다.