Tree tearing

3.9

54 votes
Approved, Greedy Algorithms, Medium, Open, Trees
Problem

You are given a tree consising of N vertices. What is the minimum number of vertices that should be removed that all the remaining parts of the initial tree will contain less than K vertices?

Input
The first line contains one integer K. The second line contains one integer N. The third line contains N-1 space-separated intgers ai for 2 <= i <= N which means that vertices i and ai are connected by an edge.

Output
Output one number - answer for the question.

Constraints

  • 1 <= K, N <= 10 000
  • ai < i
Sample Input
3
12
1 1 2 2 3 2 3 6 6 6 7
Sample Output
3
Time Limit: 1
Memory Limit: 256
Source Limit:
Explanation

We can remove vertices 2, 3, 6.

Editor Image

?