#CF1950F. 0,1,2,树!

0,1,2,树!

0,1,2,树!

时间限制:2s
空间限制:256MB

题目描述

求满足下列条件的有根树的最小高度:

  • 恰有 aa 个节点各有 22 个子节点;
  • 恰有 bb 个节点各有 11 个子节点;
  • 恰有 cc 个节点没有子节点。

树共有 a+b+ca+b+c 个节点。如果不存在满足条件的树,输出 −1-1。

有根树是指定了一个根节点的连通无环图。树中相邻的两个节点里,离根较近的是父节点,另一个是它的子节点。两个节点的距离是连接它们的路径所含的边数;树的高度是所有节点到根的距离的最大值。因此,只有一个节点的树高度为 00。

有根树示例

图中的根位于最上方,每个节点内的数字表示它的子节点数量。该树满足 a=2a=2、b=1b=1、c=3c=3,高度为 22。

输入格式

第一行包含一个整数 tt,表示测试数据的组数。

每组测试数据只有一行,包含三个整数 a,b,ca,b,c。

输出格式

对于每组测试数据,如果不存在满足条件的树,输出 −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

样例解释

第一组的最优树如图所示,高度为 22。

第二组可以构成单个节点,高度为 00。第三组可以构成由一条边连接的两个节点,高度为 11。

数据范围

  • 对于所有数据,满足 1≤t≤100001\le t\le10000。
  • 对于所有数据,满足 0≤a,b,c≤1000000\le a,b,c\le100000。
  • 对于所有数据,满足 a+b+c≥1a+b+c\ge1。
  • 所有测试组共同满足 ∑(a+b+c)≤300000\sum(a+b+c)\le300000。
子任务编号 分值 特殊限制
1 15 a+b+c≤11a+b+c\le11,且一个输入文件内 ∑(a+b+c)≤44\sum(a+b+c)\le44
2 25 a+b+c≤400a+b+c\le400,且一个输入文件内 ∑(a+b+c)≤800\sum(a+b+c)\le800
3 30 c≤1000c\le1000
4 无特殊限制