킹십리역 갓번 출구
시간 제한2초메모리 제한512 MB
각 간선에 길이가 있고, 고른 경로 밖의 모든 간선에 전역 혼잡도가 더해지는 그래프에서, 네 단계 규칙으로 경로를 골라 G까지 이동하며, 그 경로 밖 간선에 v를 더하는 갱신과 이동 시간을 묻는 질의를 처리한다.
문제
영민이의 멘토링 조는 항상 킹십리역 번 출구에서 만나기로 약속 장소를 정한다. 하지만 킹십리역은 구조가 매우 복잡하기 때문에 번 출구를 찾아가기란 쉽지 않다.
킹십리역은 각각의 출구를 정점으로 하고, 두 출구 사이의 통로 구간을 간선으로 하는 하나의 그래프로 나타낼 수 있다. 서로 다른 두 출구는 최대 1개의 통로 구간으로 연결되며, 임의의 두 출구 사이에 이동 가능한 경로가 반드시 존재한다. 영민이는 특정 출구에서 매번 번 출구를 찾아가면서 킹십리역 내부 구조를 학습한다.
특정 출구에서 번 출구로 찾아가는 경로는 여러 통로 구간으로 구성될 수 있다. 그런데 영민이는 특정 경로를 한 번 이용하면 그 경로에 너무 익숙해진 나머지, 해당 경로를 구성하지 않는 모든 통로 구간의 헷갈리는 정도가 일정량 증가한다. 처음에 모든 통로 구간의 헷갈리는 정도는 이며, 각 구간을 이동하는 데 걸리는 시간은 해당 구간의 길이와 헷갈리는 정도의 합과 같다.
영민이가 번 출구를 찾아갈 때는 다음과 같은 규칙을 순서대로 따른다.
- 각 통로 구간에서 헷갈리는 정도의 최댓값이 더 작은 경로를 이용한다.
- 각 통로 구간 길이의 총합이 더 짧은 경로를 이용한다.
- 더 적은 출구를 경유하는 경로를 이용한다.
- 경로상의 출구 번호를 경유하는 순서대로 나열할 때, 사전 순으로 더 빠른 수열을 가진 경로를 이용한다.
출구들의 정보가 주어질 때, 다음과 같은 질의를 수행하는 프로그램을 작성하시오.
- : 번 출구에서 번 출구까지 이동하며 경로를 학습한다. (경로를 구성하지 않는 각 통로 구간의 헷갈리는 정도가 만큼 증가한다.)
- : 번 출구에서 번 출구까지 이동한다고 가정할 때 걸리는 시간을 출력한다. (학습하는 과정이 아니므로 각 통로 구간의 헷갈리는 정도에는 변화가 없다.)
입력
첫 번째 줄에 출구의 개수 과 두 출구 사이를 연결하는 통로 구간의 개수 , 가 공백으로 구분되어 주어진다.
두 번째 줄부터 개의 줄에 각 통로의 양 끝 출구의 번호 와 통로 구간의 길이 가 주어진다. 모든 통로 구간의 길이는 정수이다.
번째 줄에 질의의 개수 가 주어진다.
번째 줄부터 개의 줄에 문제에서 설명한 형태의 질의가 한 줄에 하나씩 주어진다.
1번 질의에서 의 값은 항상 정수이고, 2번 질의는 1개 이상 주어진다.
출력
2번 질의에 대해 한 줄에 하나씩 번 출구에서 번 출구까지 이동한다고 가정할 때 걸리는 시간을 출력한다.