방어 타워
시간 제한6초메모리 제한512 MB
트리의 각 도시마다 가장 강한 방어 탑의 번호를 구하고, 업그레이드 명령마다 그 번호들의 합을 출력합니다.
문제
ICPCCamp에는 번호가 붙은 개의 도시가 있으며, 개의 양방향 도로로 연결되어 있다. 서로 다른 두 도시 사이의 경로는 정확히 하나이다.
도시 에는 power가 인 방어 타워가 있다. 타워는 순서로 지어졌고, 타워 번호는 도시 번호와 같다. 따라서 타워 이 가장 오래된 타워이고 타워 이 가장 새로운 타워이다. 타워 가 도시 에 주는 효과는 이다. 여기서 는 도시 와 사이의 도로 수다. 도시 의 수호자는 에 대한 효과가 가장 큰 타워다. 여러 타워의 효과가 같으면 그중 가장 오래된 타워가 수호자가 된다.
Yuuka는 방어 타워의 power를 올리는 명령을 번 내린다. 번째 명령은 타워 의 power에 를 더한다. 명령을 처리할 때마다 모든 도시 수호자 번호의 합을 구하려 한다. 강화된 타워는 자동으로 가장 새로운 타워가 된다.
다만 강화에는 비용이 든다. 강화 대상 타워가 자기 도시의 수호자가 아니거나 이면, 그 명령은 무시된다.
입력
입력에는 0개 이상의 테스트 케이스가 들어 있으며, 파일의 끝에서 끝난다. 각 테스트 케이스는 다음과 같다.
첫째 줄에 두 정수 , ()가 주어진다.
둘째 줄에 개의 정수 ()이 주어진다.
이어지는 개의 줄에는 정수 , ()가 주어지며, 도시 와 를 잇는 도로가 있음을 뜻한다. 서로 다른 두 도시 사이의 경로는 정확히 하나이다.
마지막 개의 줄에는 정수 , (, )가 주어진다.
모든 테스트 케이스에 걸쳐 의 합과 의 합은 각각 를 넘지 않는다.
출력
각 테스트 케이스마다 개의 정수 를 출력한다. 는 번째 명령을 처리한 뒤 모든 수호자 번호의 합이다.