#CF1950F. 0、1、2,树!
0、1、2,树!
F. 0、1、2,树!
时间限制: 秒
内存限制: 兆字节
题目描述
给定三类节点数量:
- 个节点恰好有 个孩子;
- 个节点恰好有 个孩子;
- 个节点恰好有 个孩子(叶子节点)。
总节点数为 。 请构造一棵有根树满足上述节点数量要求,求出这棵树的最小可能高度; 若无法构造出合法的树,输出 。

补充定义
† 有根树:无环连通图,有一个特殊顶点称为根。 任意一条边相连的两个顶点,距离根更近的为父节点,另一个为子节点。
树中两点距离:两点之间最短路径的边数。 有根树的高度:根到任意叶子节点距离的最大值。
题目示例说明: 样例中给出的树满足 ,树的高度为 。
输入格式
第一行输入一个整数 (),代表测试用例组数。
每组测试用例输入三个整数 : ,且满足 。
所有测试用例的 总和不超过 。
输出格式
对每组测试用例:
- 无法构造合法树,输出 ;
- 可以构造,输出满足条件的树的最小高度。
样例输入
10
2 1 3
0 0 1
0 1 1
1 0 2
1 1 3
3 1 4
8 17 9
24 36 48
1 0 0
0 3 1
样例输出
2
0
1
1
-1
3
6
-1
-1
3
题目注释
- 第一个测试用例 ,最小高度为 ,无法构造出更小高度的树;
- 第二个测试用例 ,只有单个孤立节点,无边,高度为 ;
- 第三个测试用例 ,两个节点连一条边,高度为 。