만드는 중입니다

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

할인 행사

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

요약
가중치가 있는 트리에서 각 질의 (X, Y)마다 X와 Y 사이 경로의 간선 비용을 0으로 바꾼 뒤, 두 도시 사이 거리의 최댓값을 구합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, DFS
정답자
아직 제출이 없습니다

문제

NN개의 도시와 N−1N-1개의 도로로 이루어진 나라가 있다. 도시에는 11부터 NN까지의 번호가 붙어 있고, 도로에도 11부터 N−1N-1까지의 번호가 붙어 있다. ii번 도로는 AiA_i번 도시와 BiB_i번 도시를 양방향으로 연결하며, 이동할 때 WiW_i의 비용이 든다. 임의의 두 도시를 골라도 둘 사이를 하나 이상의 도로로 왕복할 수 있다.

두 도시 사이의 거리는 한 도시에서 출발해 하나 이상의 도로를 거쳐 다른 도시로 갈 때 필요한 최소 비용으로 정의한다.

당신은 도로 회사의 사장이며, 명절을 맞아 할인 행사를 열려고 한다. 행사 계획은 총 QQ개이다. ii번째 계획에서는 XiX_i번 도시에서 출발해 YiY_i번 도시로 가는 최단 경로에 속한 모든 도로에 할인을 적용해 비용을 0으로 만든다. 각 계획마다 두 도시 사이 거리의 최댓값을 구하라.

입력

첫 번째 줄에 도시의 수 NN이 주어진다. 다음 N−1N-1개의 줄에는 세 정수 AiA_i, BiB_i, WiW_i가 공백으로 구분되어 주어지며, 이는 ii번째 도로가 잇는 두 도시의 번호와 이동 비용이다.

다음 줄에는 계획의 수 QQ가 주어진다. 다음 QQ개의 줄에는 두 정수 XiX_i와 YiY_i가 공백으로 구분되어 주어지며, 이는 ii번째 계획을 나타낸다.

출력

총 QQ개의 줄에 답을 출력한다. ii번째 줄에는 ii번째 계획의 답을 출력한다.

제한

  • 2≤N≤100 0002 \le N \le 100\,000
  • 1≤Ai,Bi≤N1 \le A_i, B_i \le N (1≤i≤N−11 \le i \le N-1)
  • Ai≠BiA_i \ne B_i (1≤i≤N−11 \le i \le N-1)
  • 1≤Wi≤1091 \le W_i \le 10^9 (1≤i≤N−11 \le i \le N-1)
  • 입력으로 주어지는 나라의 구조는 올바른 트리를 이룬다.
  • 1≤Q≤100 0001 \le Q \le 100\,000
  • 1≤Xi,Yi≤N1 \le X_i, Y_i \le N (1≤i≤Q1 \le i \le Q)
  • Xi≠YiX_i \ne Y_i (1≤i≤Q1 \le i \le Q)

예제4

  1. 예제 1

    입력
    5
    1 2 1
    1 3 2
    2 4 4
    2 5 2
    3
    1 4
    3 5
    5 4
    
    예상 출력
    4
    4
    3
    
  2. 예제 2

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

    입력
    8
    1 2 3
    1 3 5
    2 4 5
    2 5 3
    2 6 6
    6 7 1
    6 8 2
    7
    1 2
    1 3
    2 4
    2 5
    2 6
    6 7
    6 8
    
    예상 출력
    13
    13
    16
    16
    13
    16
    15
    
  4. 예제 4

    입력
    7
    1 2 3
    1 3 4
    2 4 2
    2 5 1
    3 6 6
    3 7 2
    6
    1 2
    1 3
    1 4
    1 5
    1 6
    1 7
    
    예상 출력
    12
    11
    11
    12
    7
    11