시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB73282234.921%

문제

$N$개의 정점과 $N$개의 양방향 간선으로 이루어진 연결 그래프 $G$가 주어진다. 정점에는 $1$부터 $N$까지의 번호가 매겨져 있다. $i$번째 간선은 정점 $u_i$와 정점 $v_i$를 양방향으로 연결하고 간선의 길이는 $d_i$이다.

정점의 순서쌍 $\left( x_i,y_i \right)$가 $Q$개 주어진다. 각각의 순서쌍에 대해 정점 $x_i$와 정점 $y_i$를 잇는 최단 경로의 길이를 구하시오.

입력

첫 번째 줄에 정점의 개수 $N$이 주어진다. $(2\leq N\leq 2\times 10^5)$

두 번째 줄부터 $N$개의 줄에 걸쳐 간선의 정보 $u_i,v_i,d_i$가 공백으로 구분되어 주어진다. $(1\leq u_i\lt v_i\leq N;$ $1\leq d_i\leq 10^9)$ $i\neq j$이고 $\left( u_i,v_i \right) =\left( u_j,v_j \right)$인 중복 간선이 입력으로 주어질 수 있다.

$N+2$ 번째 줄에 정수 $Q$가 주어진다. $(1\leq Q\leq 2\times 10^5)$

$N+3$ 번째 줄부터 $Q$개의 줄에 걸쳐 정점 $x_i$와 정점 $y_i$가 공백으로 구분되어 주어진다. $(1\leq x_i\lt y_i\leq N)$

입력으로 주어지는 모든 수는 정수이다.

출력

첫 번째 줄부터 $Q$개의 줄에 걸쳐 $x_i$와 $y_i$를 잇는 최단 경로의 길이를 출력한다.

예제 입력 1

4
1 2 1
2 3 5
3 4 3
2 3 2
3
1 2
2 3
1 4

예제 출력 1

1
2
6

예제 입력 2

7
1 2 6
2 3 3
3 4 2
3 7 6
4 5 1
4 6 3
6 7 4
3
1 3
2 5
3 6

예제 출력 2

9
6
5

출처

Contest > SW마에스트로 > 제13기 알고리즘 대회 F번