트리 카데인
시간 제한3초메모리 제한1024 MB
정점 가중치가 바뀔 때마다 트리에서 연결된 부분집합의 가중치 합의 최댓값을 구합니다.
문제
정점 부터 까지 번호가 매겨진 개의 정점으로 이루어진 트리 가 주어진다. 각 번 정점은 정수 가중치 를 가진다.
의 연결 부분 집합 는 의 정점들로 이루어진 공집합이 아닌 부분 집합이다. 에 속한 임의의 두 정점 , 에 대해, 에 속한 정점만 거쳐 에서 로 가는 경로가 에 존재한다.
개의 쿼리를 처리해야 한다.
- : 를 로 바꾼 뒤, 의 모든 연결 부분 집합 에 걸쳐 의 최댓값을 출력한다.
입력
첫 번째 줄에 정점의 개수 이 주어진다.
두 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다.
다음 개의 줄 중 번째 줄에는 두 정수 와 가 공백으로 구분되어 주어진다. 이들은 번째 간선의 양 끝점이다.
다음 줄에 쿼리의 개수 가 주어진다.
다음 개의 줄에는 각 쿼리를 나타내는 두 정수 와 가 공백으로 구분되어 주어진다.
출력
각 쿼리의 답을 주어진 순서대로 한 줄에 하나씩 출력한다.
제한
- ()
- ()
- 주어지는 그래프는 트리이다.
- 각 쿼리에 대해
- 각 쿼리에 대해