나무핑

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

요약
리프를 하나씩 추가해 나가며 매번 트리의 지름을 출력한다.
난이도

보통10점 중 7점

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

문제

처음에 11번 노드 하나로 이루어진 트리에 QQ개의 쿼리를 적용하려 하며 ii번째 쿼리는 다음과 같다.

  • q_iq\_i w_iw\_i: 새로운 i+1i + 1번 노드와 트리의 q_iq\_i번 노드 사이를 w_iw\_i의 가중치를 가지는 간선으로 잇는다.

각 쿼리마다 노드를 추가한 후의 트리의 지름을 출력하라. 쿼리는 누적된다.

입력

첫 번째 줄에 쿼리의 개수 QQ가 주어진다. (1≤Q≤200,000)\left( 1 \le Q \le 200\\,000\right)

두 번째 줄부터 QQ개의 줄에 걸쳐 쿼리 q_iq\_i, w_iw\_i가 공백으로 구분되어 주어진다. (1≤q_i≤i;0≤w_i≤109)\left(1 \le q\_i \le i; 0 \le w\_i \le 10^{9}\right)

출력

QQ개의 줄에 걸쳐 각 쿼리마다 노드를 추가한 후의 트리의 지름을 출력한다.

쿼리는 누적됨에 유의하라.

힌트

트리에서 가장 먼 두 노드 간의 거리를 트리의 지름이라고 한다.

예제1

  1. 예제 1

    입력
    6
    1 0
    2 1000000000
    2 999999999
    3 0
    5 1
    4 2
    
    예상 출력
    0
    1000000000
    1999999999
    1999999999
    2000000000
    2000000002