만드는 중입니다

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

트리 카데인

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

요약
정점 가중치가 바뀔 때마다 트리에서 연결된 부분집합의 가중치 합의 최댓값을 구합니다.
난이도

보통10점 중 7점

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

문제

정점 11부터 NN까지 번호가 매겨진 NN개의 정점으로 이루어진 트리 TT가 주어진다. 각 ii번 정점은 정수 가중치 AiA_i를 가진다.

TT의 연결 부분 집합 SS는 TT의 정점들로 이루어진 공집합이 아닌 부분 집합이다. SS에 속한 임의의 두 정점 aa, bb에 대해, SS에 속한 정점만 거쳐 aa에서 bb로 가는 경로가 TT에 존재한다.

QQ개의 쿼리를 처리해야 한다.

  • kk xx: AkA_k를 xx로 바꾼 뒤, TT의 모든 연결 부분 집합 SS에 걸쳐 ∑i∈SAi\sum_{i \in S} A_i의 최댓값을 출력한다.

입력

첫 번째 줄에 정점의 개수 NN이 주어진다.

두 번째 줄에 NN개의 정수 A1,A2,…,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다.

다음 N−1N-1개의 줄 중 ii번째 줄에는 두 정수 uiu_i와 viv_i가 공백으로 구분되어 주어진다. 이들은 ii번째 간선의 양 끝점이다.

다음 줄에 쿼리의 개수 QQ가 주어진다.

다음 QQ개의 줄에는 각 쿼리를 나타내는 두 정수 kk와 xx가 공백으로 구분되어 주어진다.

출력

각 쿼리의 답을 주어진 순서대로 한 줄에 하나씩 출력한다.

제한

  • 1≤N≤1051 \leq N \leq 10^5
  • −109≤Ai≤109-10^9 \leq A_i \leq 10^9 (1≤i≤N1 \leq i \leq N)
  • 1≤ui,vi≤N1 \leq u_i, v_i \leq N (1≤i≤N−11 \leq i \leq N-1)
  • 주어지는 그래프는 트리이다.
  • 1≤Q≤1051 \leq Q \leq 10^5
  • 각 쿼리에 대해 1≤k≤N1 \leq k \leq N
  • 각 쿼리에 대해 −109≤x≤109-10^9 \leq x \leq 10^9

예제1

  1. 예제 1

    입력
    5
    3 -1 -4 -1 -5
    1 2
    1 3
    3 4
    3 5
    5
    1 -2
    3 2
    4 1
    2 5
    1 -9
    
    예상 출력
    -1
    2
    3
    6
    5