비밀 기지
시간 제한7초메모리 제한1024 MB
정점마다 사람 수가 있는 트리에서 사람 수가 바뀔 때마다 모든 사람이 한 도시로 모이는 최소 이동 거리 합을 구합니다.
문제
설곽국은 1부터 까지 번호가 매겨진 개의 도시로 이루어진 국가이다. 도시 사이에는 두 도시를 연결하는 개의 도로가 있으며, 모든 도시는 서로 연결되어 있다. 모든 도로의 길이는 로 같다.
어느 날 이웃 나라 경곽국이 침공한다는 소식이 들려오자, 긴장한 설곽국 사람들은 비밀 기지를 하나 짓기로 했다. 비밀 기지는 임시로 간단하게 짓기 때문에 쉽게 위치를 옮길 수 있다.
비밀 기지는 다음 성질을 만족하는 도시에 짓는다.
- 비밀 기지를 번 도시에 지었을 때, 모든 사람이 번 도시로 이동하는 거리의 합을 로 정의한다. 이때 는 번 도시와 번 도시 사이의 거리이다.
- 비밀 기지는 모든 도시 중 가 최소가 되는 도시 에 짓는다. 이러한 도시가 여러 개라면 아무 곳에나 지어도 된다.
설곽국에 사는 브루는 비밀 기지를 짓고 나서 사람들의 이동 거리 총합을 알고 싶어 한다.
그런데 시간이 지남에 따라 정확히 번, 어떤 도시에 있는 사람의 수가 변한다. 변화가 일어날 때마다 이동 거리 총합이 바뀔 수 있고, 그 때문에 비밀 기지가 이동할 수도 있다. 각 시점에 대해 이동 거리 총합을 모두 구하라.
입력
첫 줄에는 도시의 개수 과 변화 횟수 가 주어진다.
둘째 줄에는 각 도시에 있는 사람의 수 , , , 이 공백으로 구분되어 주어진다.
셋째 줄부터 개의 줄에는 설곽국의 도로 구조가 주어진다. 번째 줄에는 두 정수 , 가 주어지며, 이는 번 도시와 번 도시를 잇는 도로가 있다는 뜻이다.
번째 줄부터 개의 줄에는 변화가 의 형태로 주어진다. 번 도시에 있는 사람의 수가 명으로 바뀐다는 뜻이다.
출력
초기 상태와, 번의 인구 변화가 일어난 뒤 각각에 대해 모든 사람의 비밀 기지로의 이동 거리 합을 줄에 걸쳐 출력한다.
제한
- ()
- 입력으로 올바른 트리가 주어짐이 보장된다.
- ()
- ()
힌트
두 도시 와 의 거리는 도시 에서 도시 로 가장 적은 수의 도로를 이용해 이동할 때 지나는 도로의 개수이다.