트리 위의 안테나
시간 제한2초메모리 제한256 MB
모든 정점을 서로 구별하도록 거리 벡터를 만드는 최소 개수의 안테나 정점 집합을 트리에서 찾는다.
문제
정점이 개인 트리가 있다. 정점은 부터 까지 번호가 붙어 있고, 번째 간선()은 정점 와 를 연결한다. 각 정점 쌍 ()에 대해 거리 를 경로 - 위의 간선 수로 정의한다.
외계인 침공으로 정점 하나가 점령될 예정이다. Snuke는 침공이 일어난 즉시 그 정점을 알아내려 한다. 이를 위해 일부 정점에 안테나를 설치하기로 했다.
먼저 안테나의 개수 ()를 정한다. 그다음 서로 다른 개의 정점 을 골라 각각 안테나 을 설치한다. 정점 가 외계인에게 점령되면 안테나 ()는 거리 를 출력한다. Snuke는 이 개의 출력을 보고 점령된 정점을 알아낸다. 따라서 어느 정점이 점령되더라도 그 정점을 알아내려면 다음 조건이 성립해야 한다: 각 정점 ()에 대해 벡터 를 생각하자. 이 개의 벡터는 모두 서로 달라야 한다.
조건이 성립할 때 안테나 개수 의 최솟값을 구하라.
입력
입력은 다음 형식으로 주어진다:
출력
조건이 성립할 때 안테나 개수 의 최솟값을 출력한다.
제한
, , 주어진 그래프는 트리이다.
힌트
Sample 1에서는 정점 과 에 안테나를 설치한다. 그러면 다음 다섯 벡터가 서로 다르다:
Sample 2에서 가능한 해 중 하나는 정점 에 안테나를 설치하는 것이다.
Sample 3에서 가능한 해 중 하나는 정점 , , 에 안테나를 설치하는 것이다.