Description
“Ran,今天我要在Hakase家打游戏,不回来了。”
“Ran,Hakase新发明了游戏,我今天住博士家。”
“Ran,Conan今天要在我家通宵打游戏。”
终于有一天,电脑被打坏了……2333
所以Conan要前往专卖店买新的,正好专卖店正在促销,一共有三种礼包:
豪华礼包:一个 U盘、一个鼠标和一个机械键盘。
幸运礼包:一个 U盘、两个鼠标。
普通礼包:两个 U盘、一个鼠标。
卖店内准备了 a 个 U盘、b 个鼠标和 c 个机械键盘。为了给顾客带来足够多的惊喜,店长希望相邻两位领礼包的顾客拿到的礼包类型都是不同的。店长想知道这些奖品最多可以发出多少份礼包。可是店长毕竟没有Conan聪明,所以请教Conan,可是Conan要急着回去打游戏,所以就交给你啦。
Input
输入第一行包含一个正整数 T。
接下来T行每行包含3个正整数a, b, c,依次表示U盘、鼠标和机械键盘各有多少个。
Output
输出T行,每行一个整数,表示最多能发出多少份礼包。
思路
观察,可以发现礼包都共同至少拥有u盘1个和鼠标一个。
去除之后就变成了:
U盘 | 鼠标 | 键盘 |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
然后r初始等于a和b的最小值,l=0;
mid为最终礼包数。
然后减去mid后,某样东西多出1个就代表它可以凑一个礼包。所以如果剩下的总和>mid,l=mid;
如果不够或者剩下的不能使任意俩种加起来大于等于第三种,r=mid-1;
#