#CF1950F. 0, 1, 2, Tree!

    ID: 6890 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>位运算暴力贪心模拟CodeforcesCodeforces Round 937(Div4)Div4FCF1950F1700

0, 1, 2, Tree!

题目描述

查找满足条件的有根树 ^{\dagger} 的最小高度。

其中 a+b+ca+b+c 个顶点满足以下条件:

  • aa 个顶点恰好有 22 个子顶点,

  • bb 个顶点恰好有 11 个子顶点,

  • cc 个顶点没有子顶点。

如果没有这样的树,输出 1-1

如:

上面的树植根于顶部顶点,每个顶点都标有它的子节点数。

这里 a=2,b=1,c=3a=2,b=1,c=3,高度为 22

^{\dagger}:有根树是指一个没有循环的连通图,有一个特殊的顶点称为根。在有根树中,在由边连接的任意两个顶点,一个顶点是父顶点(离根更近的顶点),另一个是子顶点。

树中两个顶点之间的距离是它们之间最短路径中的边数。有根树的高度是从顶点到根部的最大距离。

输入格式

第一行包含一个整数 tt1t1041\leq t\leq 10^4)表示测试用例的数量。 每个测试用例的唯一一行包含三个整数 aabbcc0abc1050\leq a、b、c\leq 10^51a+b+c1\leq a+b+c)。

所有测试用例的 a+b+ca+b+c 之和不超过 31053 \cdot 10^5

输出格式

对于每个测试用例,如果不存在这样的树,输出 1-1

否则输出一个整数——满足条件的树的最小高度。

样例 #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

样例输出 #1

2
0
1
1
-1
3
6
-1
-1
3

样例

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

样例说明

第一个测试用例如图所示。树的高度不能低于 22

在第二个测试用例中,您可以形成一个只有一个顶点且没有边的树。它的高度为 00,这显然是最佳的。

在第三个测试用例中,您可以形成一个由单个边连接的两个顶点的树。它的高度为 11,这显然是最佳的。

来源

Codeforces 1950F,英文题名 0, 1, 2, Tree!。