지하철
시간 제한3초메모리 제한128 MB
n개의 역으로 이루어진 트리에서 가지치기 없는 경로 l개를 골라 최대한 많은 역을 덮도록 하는 문제입니다.
문제
어느 도시가 오랜 기간에 걸쳐 지하철을 건설해 왔습니다. 예산 관리가 잘못되어 비용이 크게 과소평가된 탓에, 정작 열차를 살 자금은 남지 않았습니다. 그 결과 역은 너무 많이 지어졌지만 계획했던 터널은 일부만 완공되어, 임의의 두 역 사이를 오갈 수 있는 최소한의 연결만 겨우 확보된 상태입니다. 각 터널은 양방향이며, 터널의 개수는 역의 개수보다 정확히 하나 적습니다. 남은 자금으로는 열차도 몇 대밖에 사지 못했습니다.
체면을 세우기 위해, 이사회는 정해진 수의 지하철 노선으로 최대한 많은 역을 잇도록 노선을 계획해 달라고 요청했습니다. 각 열차는 지정된 하나의 노선을 운행합니다. 노선은 분기할 수 없습니다(한 역에서 나가는 세 개의 터널이 같은 노선에 속할 수는 없습니다). 서로 다른 노선이 같은 역이나 같은 터널을 공유해도 됩니다.
다음을 수행하는 프로그램을 작성하세요.
- 표준 입력에서 터널망의 구조와 계획할 지하철 노선의 수를 읽습니다.
- 주어진 수의 노선으로 덮을 수 있는 역의 최대 개수를 계산합니다.
- 그 결과를 표준 출력에 씁니다.
입력
첫째 줄에 두 정수 과 이 공백 하나로 구분되어 주어집니다(, ). 은 역의 수, 은 계획할 지하철 노선의 수입니다. 역에는 부터 까지 번호가 매겨져 있습니다.
이어지는 개의 줄에는 각각 서로 다른 두 정수가 공백 하나로 구분되어 주어집니다. 번째 줄의 두 정수 , ()는 번째 터널이 잇는 두 역의 번호입니다.
출력
열차 노선으로 덮을 수 있는 역의 최대 개수를 나타내는 정수 하나를 첫째 줄에 출력합니다.
힌트

그림은 (지하철 노선을 표시한) 터널망을 최적 구성 중 하나로 나타낸 것입니다.