#CF1945A. 搭建帐篷
搭建帐篷
A. 搭建帐篷
时间限制:每个测试用例 秒 内存限制:每个测试用例 兆字节
组委会计划在游览结束后,带领奥林匹克竞赛的参赛者进行徒步旅行。目前正在计算需要携带的帐篷数量。已知每顶帐篷最多可容纳 人。
参赛者中有 名内向者、 名外向者和 名通用者:
- 每名内向者都想独自住一顶帐篷。因此,有内向者的帐篷必须恰好只有 个人——只有这名内向者自己。
- 每名外向者都想和另外两个人同住一顶帐篷。因此,有外向者的帐篷必须恰好有 个人。
- 每名通用者对任何安排都可以接受(独自住、和一人同住、和两人同住均可)。
组委会非常尊重每位参赛者的意愿,希望满足所有人的要求。
请计算出需要携带的最少帐篷数量,使得所有参赛者都能按照自己的偏好入住。如果无法按照所有人的意愿安排住宿,输出 。
输入
每组测试包含多个测试用例。第一行包含一个整数 ()——测试用例的数量。接下来是各测试用例的描述。
每个测试用例占一行,包含三个整数 、、(),分别代表内向者、外向者和通用者的数量。
输出
对于每个测试用例,输出一个整数——所需帐篷的最少数量;如果无法安排,输出 。
样例输入
10
1 2 3
1 4 1
1 4 2
1 1 1
1 3 2
19 7 18
0 0 0
7 0 0
0 24 0
1000000000 1000000000 1000000000
样例输出
3
-1
3
-1
3
28
0
7
8
1666666667
说明
在第一个测试用例中:给内向者 顶帐篷, 名外向者和 名通用者共用 顶帐篷,最后 名通用者共用 顶帐篷。总共需要 顶帐篷。
在第二个测试用例中: 名外向者用 顶帐篷,内向者用 顶帐篷。之后还剩 名外向者和 名通用者,这名外向者无法找到另外两人同住,因此无法满足要求。