CF1739D Reset K Edges
Description
You are given a rooted tree, consisting of $ n $ vertices. The vertices are numbered from $ 1 $ to $ n $ , the root is the vertex $ 1 $ .
You can perform the following operation at most $ k $ times:
- choose an edge $ (v, u) $ of the tree such that $ v $ is a parent of $ u $ ;
- remove the edge $ (v, u) $ ;
- add an edge $ (1, u) $ (i. e. make $ u $ with its subtree a child of the root).
The height of a tree is the maximum depth of its vertices, and the depth of a vertex is the number of edges on the path from the root to it. For example, the depth of vertex $ 1 $ is $ 0 $ , since it's the root, and the depth of all its children is $ 1 $ .
What's the smallest height of the tree that can be achieved?
Input Format
The first line contains a single integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of testcases.
The first line of each testcase contains two integers $ n $ and $ k $ ( $ 2 \le n \le 2 \cdot 10^5 $ ; $ 0 \le k \le n - 1 $ ) — the number of vertices in the tree and the maximum number of operations you can perform.
The second line contains $ n-1 $ integers $ p_2, p_3, \dots, p_n $ ( $ 1 \le p_i < i $ ) — the parent of the $ i $ -th vertex. Vertex $ 1 $ is the root.
The sum of $ n $ over all testcases doesn't exceed $ 2 \cdot 10^5 $ .
Output Format
For each testcase, print a single integer — the smallest height of the tree that can achieved by performing at most $ k $ operations.