소 전화망
시간 제한1초메모리 제한128 MB
나무의 잎마다 소가 있고 각 정점은 최대 K개의 대화를, 각 간선은 한 번에 하나의 대화만 감당할 수 있을 때 동시에 성립하는 잎 간 대화 쌍의 최댓값을 구한다.
문제
소들이 전화망을 구축했다. 이 문제에서 전화망은 정점이 개()인 무방향 트리로 볼 수 있으며, 정점에는 번부터 번까지 번호가 매겨져 있다. 각 정점은 전화 교환기이고, 각 간선은 두 교환기를 잇는 전화선이다. 번 간선은 두 정수 와 로 주어지며, 이 간선이 잇는 두 정점을 뜻한다(, , ).
어떤 교환기에는 전화선이 단 하나만 연결되어 있다. 이러한 정점은 트리의 잎(leaf)이며, 각 잎은 소가 있는 목초지에 놓인 전화 부스다.
두 소가 통화하려면, 두 소가 있는 두 정점 사이의 유일한 최단 경로를 따라 통화가 전달된다. 하나의 교환기는 동시에 최대 개()의 통화만 처리할 수 있고, 하나의 전화선에는 같은 시각에 최대 한 개의 통화만 지나갈 수 있다.
트리의 모든 잎에 소가 한 마리씩 있을 때, 동시에 통화할 수 있는 소 쌍의 최대 개수는 얼마인가? 물론 각 소는 최대 한 번의 통화에만 참여할 수 있다.
인 다음 개 정점 전화망을 생각해 보자.
1 5 C1 C5
| | || ||
2---4 --> |2---4|
| | || ||
3 6 C3 C6
정점 에 각각 소가 있다. 소 이 소 과 통화하고 소 가 소 과 통화하면 어떤 교환기도 처리 한도를 넘지 않으므로, 이 예시의 답은 이다(동시에 통화하는 소 쌍이 두 쌍).
입력
- 첫째 줄: 공백으로 구분된 두 정수 과 가 주어진다.
- 둘째 줄부터 번째 줄까지: 번째 줄에 번 간선의 두 정점 와 가 공백으로 구분되어 주어진다.
출력
- 첫째 줄: 동시에 통화할 수 있는 소 쌍의 최대 개수를 출력한다.