트리를 건강하게 만들기
면접 대비시간 제한1초메모리 제한1024 MB
트리에서 값이 1인 불건강 노드를 세고, 각 연결 요소에 불건강 노드가 K개 이하로 남도록 간선을 최소로 끊는 개수를 구합니다.
문제
예환이는 트리를 가지고 노는 것을 좋아해서 나뭇가지로 트리를 하나 만들었다. 그런데 시간이 지나자 나뭇가지들의 접합부 중 몇몇이 썩고 있다는 것을 발견했다. 예환이는 장미칼을 가져와서 최소 개수의 나뭇가지를 잘라 모든 연결 요소가 건강해지도록 하고 싶다.
나뭇가지들이 만나는 접합부를 노드라고 하고, 노드들을 간선(나뭇가지)으로 연결한 그래프 를 생각하자. 그래프 는 트리이다. 썩고 있는 노드를 안 건강 노드라고 하자. 예환이는 하나의 연결 요소에 속한 안 건강 노드의 개수가 이하이면 그 연결 요소를 건강하다고 판단한다.

위의 그림은 일 때 트리를 건강하게 나눈 예시 중 하나이다. (빨간 노드가 안 건강 노드를 의미한다.)
총 노드의 수 과 한 연결 요소에 속한 안 건강 노드의 최대 개수 가 주어졌을 때, 최소 몇 개의 간선을 없앴을 때 남은 모든 연결 요소가 건강해지는지 출력하는 프로그램을 작성하시오.
입력
첫 번째 줄에 두 정수 , 가 공백으로 구분되어 주어진다.
두 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다. 각 에 대하여, 번째 노드가 안 건강 노드이면 이고, 그렇지 않으면 이다.
이후 개의 줄에 걸쳐 각 줄마다 두 정수 , 가 공백으로 구분되어 주어진다. 이는 번째 노드와 번째 노드 사이에 간선이 존재한다는 뜻이다.
출력
최소 몇 개의 간선을 없앴을 때 남은 모든 연결 요소가 건강해지는지 출력한다.
제한
- ,
- 각 에 대하여,
- , ,
- 주어지는 모든 수는 정수이다.
- 주어지는 그래프는 트리이다.