#CF1950F. 0、1、2,树!

0、1、2,树!

F. 0、1、2,树!

时间限制:22
内存限制:256256 兆字节

题目描述

给定三类节点数量:

  • aa 个节点恰好有 22 个孩子;
  • bb 个节点恰好有 11 个孩子;
  • cc 个节点恰好有 00 个孩子(叶子节点)。

总节点数为 a+b+ca+b+c。 请构造一棵有根树满足上述节点数量要求,求出这棵树的最小可能高度; 若无法构造出合法的树,输出 1-1

补充定义

† 有根树:无环连通图,有一个特殊顶点称为。 任意一条边相连的两个顶点,距离根更近的为父节点,另一个为子节点

树中两点距离:两点之间最短路径的边数。 有根树的高度:根到任意叶子节点距离的最大值

题目示例说明: 样例中给出的树满足 a=2, b=1, c=3a=2,\ b=1,\ c=3,树的高度为 22

输入格式

第一行输入一个整数 tt1t1041\le t\le 10^4),代表测试用例组数。

每组测试用例输入三个整数 a,b,ca,b,c0a,b,c1050\le a,b,c\le 10^5,且满足 1a+b+c1\le a+b+c

所有测试用例的 a+b+ca+b+c 总和不超过 3×1053\times 10^5

输出格式

对每组测试用例:

  • 无法构造合法树,输出 1-1
  • 可以构造,输出满足条件的树的最小高度

样例输入

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

题目注释

  1. 第一个测试用例 a=2,b=1,c=3a=2,b=1,c=3,最小高度为 22,无法构造出更小高度的树;
  2. 第二个测试用例 a=0,b=0,c=1a=0,b=0,c=1,只有单个孤立节点,无边,高度为 00
  3. 第三个测试用例 a=0,b=1,c=1a=0,b=1,c=1,两个节点连一条边,高度为 11