CF1950F.0, 1, 2, Tree!

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

查找满足条件的有根树 †^{\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}:有根树是指一个没有循环的连通图,有一个特殊的顶点称为根。在有根树中,在由边连接的任意两个顶点,一个顶点是父顶点(离根更近的顶点),另一个是子顶点。

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

输入格式

第一行包含一个整数 tt(1≤t≤1041\leq t\leq 10^4)表示测试用例的数量。
每个测试用例的唯一一行包含三个整数 aa,bb 和 cc(0≤a、b、c≤1050\leq a、b、c\leq 10^5;1≤a+b+c1\leq a+b+c)。

所有测试用例的 a+b+ca+b+c 之和不超过 3⋅1053 \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

输入输出样例

  • 输入#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

说明/提示

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

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

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

输入解题思路,AI测评打分。不知道怎么写?

首页