만드는 중입니다

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

비밀 기지

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

요약
정점마다 사람 수가 있는 트리에서 사람 수가 바뀔 때마다 모든 사람이 한 도시로 모이는 최소 이동 거리 합을 구합니다.
난이도

보통10점 중 7점

유형
트리, 세그먼트 트리, 이분 탐색
정답자
아직 제출이 없습니다

문제

설곽국은 1부터 NN까지 번호가 매겨진 NN개의 도시로 이루어진 국가이다. 도시 사이에는 두 도시를 연결하는 N−1N-1개의 도로가 있으며, 모든 도시는 서로 연결되어 있다. 모든 도로의 길이는 11로 같다.

어느 날 이웃 나라 경곽국이 침공한다는 소식이 들려오자, 긴장한 설곽국 사람들은 비밀 기지를 하나 짓기로 했다. 비밀 기지는 임시로 간단하게 짓기 때문에 쉽게 위치를 옮길 수 있다.

비밀 기지는 다음 성질을 만족하는 도시에 짓는다.

  • 비밀 기지를 xx번 도시에 지었을 때, 모든 사람이 xx번 도시로 이동하는 거리의 합을 f(x)=∑i=1nAi×dist(i,x)f(x)=\sum_{i=1}^n A_i \times \text{dist}(i, x)로 정의한다. 이때 dist(x,y)\text{dist}(x, y)는 xx번 도시와 yy번 도시 사이의 거리이다.
  • 비밀 기지는 모든 도시 중 f(x)f(x)가 최소가 되는 도시 xx에 짓는다. 이러한 도시가 여러 개라면 아무 곳에나 지어도 된다.

설곽국에 사는 브루는 비밀 기지를 짓고 나서 사람들의 이동 거리 총합을 알고 싶어 한다.

그런데 시간이 지남에 따라 정확히 QQ번, 어떤 도시에 있는 사람의 수가 변한다. 변화가 일어날 때마다 이동 거리 총합이 바뀔 수 있고, 그 때문에 비밀 기지가 이동할 수도 있다. 각 시점에 대해 이동 거리 총합을 모두 구하라.

입력

첫 줄에는 도시의 개수 NN과 변화 횟수 QQ가 주어진다.

둘째 줄에는 각 도시에 있는 사람의 수 A1A_1, A2A_2, ⋯\cdots, ANA_N이 공백으로 구분되어 주어진다.

셋째 줄부터 N−1N-1개의 줄에는 설곽국의 도로 구조가 주어진다. ii번째 줄에는 두 정수 xix_i, yiy_i가 주어지며, 이는 xix_i번 도시와 yiy_i번 도시를 잇는 도로가 있다는 뜻이다.

N+2N+2번째 줄부터 QQ개의 줄에는 변화가 viv_i did_i의 형태로 주어진다. viv_i번 도시에 있는 사람의 수가 did_i명으로 바뀐다는 뜻이다.

출력

초기 상태와, QQ번의 인구 변화가 일어난 뒤 각각에 대해 모든 사람의 비밀 기지로의 이동 거리 합을 Q+1Q+1줄에 걸쳐 출력한다.

제한

  • 2≤N≤2×1052 \le N \le 2 \times 10^5
  • 2≤Q≤2×1052 \le Q \le 2 \times 10^5
  • 1≤Ai≤1061 \le A_i \le 10^6 (1≤i≤N1 \le i \le N)
  • 1≤xi≤N1 \le x_i \le N
  • 1≤yi≤N1 \le y_i \le N
  • 입력으로 올바른 트리가 주어짐이 보장된다.
  • 1≤vi≤N1 \le v_i \le N (1≤i≤Q1 \le i \le Q)
  • 1≤di≤1061 \le d_i \le 10^6 (1≤i≤Q1 \le i \le Q)

힌트

두 도시 aa와 bb의 거리는 도시 aa에서 도시 bb로 가장 적은 수의 도로를 이용해 이동할 때 지나는 도로의 개수이다.

예제1

  1. 예제 1

    입력
    4 3
    1 1 1 1
    1 2
    2 3
    3 4
    2 2
    3 2
    4 100
    
    예상 출력
    4
    4
    5
    9