합병
시간 제한3초메모리 제한256 MB
도시 N개로 이루어진 트리와 도시마다 배정된 주(state)가 주어질 때, 어떤 두 연결 그룹으로도 나눌 수 없게 만드는 최소 병합 횟수를 구합니다.
문제
JOI합중국에는 개의 도시가 있고, 1번부터 번까지 번호가 붙어 있다. 국도는 개 있으며, 번째() 국도는 번 도시와 번 도시를 양방향으로 잇는다. 두 도시 사이에는 국도를 몇 개 거쳐 오갈 수 있다.
현재 JOI합중국은 1번부터 번까지 번호가 붙은 개의 주로 나뉘어 있다. 번() 도시는 번 주에 속한다. 모든 주에는 도시가 적어도 하나씩 속해 있다.
K이사장은 나라가 분열할지 걱정하고 있다. 모든 도시를 두 그룹 , 로 나누어 다음 조건을 모두 만족할 수 있으면, JOI합중국은 분열가능한 상태라고 한다.
- 모든 도시는 그룹 또는 그룹 에 속한다.
- 그룹 에 속한 도시가 적어도 하나 있고, 그룹 에 속한 도시도 적어도 하나 있다.
- 같은 주의 도시는 모두 같은 그룹에 속한다.
- 그룹 의 임의의 두 도시는 그룹 의 도시만 거쳐서 오갈 수 있다.
- 그룹 의 임의의 두 도시는 그룹 의 도시만 거쳐서 오갈 수 있다.
K이사장은 JOI합중국을 분열가능하지 않은 상태로 만들려고 주를 합병한다. 한 번의 합병은 두 주를 골라 하나로 합치는 것이다. 새 주에는 기존 두 주의 도시가 모두 속한다. 합병 횟수를 최소로 하여 JOI합중국을 분열가능하지 않은 상태로 만드는 최소 횟수를 구하라.
입력
첫째 줄에 과 가 주어진다.
이어지는 개의 줄에는 각각 와 가 주어진다.
이어지는 개의 줄에는 각각 가 주어진다.
N K
A_1 B_1
⋮
A_{N-1} B_{N-1}
S_1
⋮
S_N
출력
JOI합중국을 분열가능하지 않은 상태로 만드는 합병의 최소 횟수를 첫째 줄에 출력한다.
제한
- .
- .
- ().
- ().
- 두 도시 사이에는 국도를 몇 개 거쳐 오갈 수 있다.
- ().
- 모든 ()에 대해 를 만족하는 ()가 존재한다.
- 시간 제한: 3000 ms. 메모리 제한: 256 MB.