나무꾼의 마을
시간 제한3초메모리 제한1024 MB
트리의 마을 중 총독을 둘 곳을 정하고, 각 구역에서 조선소와 목재 공급 마을을 골라 건조하는 배의 최대 합을 구합니다.
문제
미드가르드에는 개의 마을이 도로망으로 연결되어 있다. 도로는 개이며, 이 도로들을 따라 어느 마을에서든 다른 모든 마을로 갈 수 있다. 즉 도로망은 트리이다. 1번 마을이 수도이다. 미드가르드 사람들은 나무를 많이 베어 배를 만든다. 통치자는 올해 큰 함대를 건조해 새로운 땅과 자원을 정복하려고 한다. 이를 위해 다음 전략을 쓴다.
- 몇몇 마을에 총독을 보낸다. 총독을 보낸 마을에서 수도까지의 단순 경로 위에는 총독을 보낸 다른 마을이 없어야 한다. 수도에 총독을 보낼 수는 있지만, 그 경우 다른 어떤 마을에도 총독을 보낼 수 없다.
- 마을 의 총독은 를 지나 수도까지 가는 단순 경로를 가진 모든 마을을 관할한다. 마을 자신도 포함된다.
- 총독의 관할에 들지 않은 마을 는 한 해 동안 배를 척 만든다.
- 마을 에 총독이 있으면 다음과 같이 행동한다.
- 관할 마을 중 와 이웃한 마을들의 부분집합 를 고른다. 그 마을들에 대형 조선소를 짓는다. 마을 에 조선소를 지으려면 다른 마을 개에서 나무를 공급받아야 하며, 그 조선소는 한 해 동안 배를 척 만든다.
- 그다음 관할 마을 중 나머지에서 정확히 개를 골라 나무를 공급하게 한다. 각 마을이 어느 조선소에 나무를 보내는지는 상관없다.
- 조선소가 지어진 마을 는 한 해 동안 배를 척 만든다.
- 나무를 공급하는 마을은 배를 만들지 않는다.
- 관할 아래 있는 그 밖의 마을은 총독의 관할이 없을 때와 같이 배를 척 만든다.
통치자는 총독을 원하는 만큼 보낼 수 있다. 총독들이 최적으로 행동한다고 할 때, 모든 마을이 한 해 동안 합쳐서 만들 수 있는 배의 최대 개수를 구하라.
입력
첫 줄에 테스트 케이스의 수 가 주어진다 (). 각 테스트 케이스는 다음과 같이 주어진다.
첫 줄에 마을의 수 이 주어진다 ().
다음 줄에는 정수 , , 가 주어진다. 는 마을 가 총독의 관할에 들지 않을 때 한 해 동안 만드는 배의 수이다. 는 마을 에 조선소를 지을 때 나무를 공급해야 하는 다른 마을의 수이다. 는 그곳에 조선소가 지어졌을 때 마을 가 한 해 동안 만드는 배의 수이다 (; ).
다음 줄에는 도로로 직접 연결된 두 마을의 번호 , 가 주어진다. 도로망이 트리임이 보장된다.
모든 테스트 케이스의 합은 5000을 넘지 않는다.
출력
각 테스트 케이스마다 총독을 최적으로 배치했을 때 모든 마을이 한 해 동안 합쳐서 만들 수 있는 배의 최대 개수를 한 줄에 하나씩 출력한다.