【题目链接】A题链接
【题目类型】思维
【题目大意】有三种颜色的糖果(色素警告!)分别是红绿蓝,每天吃两个糖果,但两个糖果不能是同一个颜色,问最多能吃几天呢?
【解题思路】这题还是比较简单的,主要是在于选择每天吃哪两个糖果,其实通过样例就可以知道每种情况了。
input
6
1 1 1
1 2 1
4 1 1
7 4 10
8 1 4
8 2 8
output
1
2
2
10
5
9
你会发现有两种情况,一个是两个最小的糖果相加小于或者等于第三个的情况,另一个则是 8 2 8类似数据的情况。
也就是
- 情况1:a+b<=c
- 情况2:a+b > c
第一种情况很好解决,主要是在于第二种情况。
那么我们不妨排一下序,a[0], a[1], a[2],如果是第二种情况的话,(a[0] + a[1] + a[2])/ 2 一定是落在第二个上面的,也就是a[1]上面,那我们就可以从这个(a[0] + a[1] + a[2])/ 2地方开始向两边去进行匹配
(为什么除以2呢,因为每天是吃两个)
//ac code
RD(a[0], a[1], a[2]);
sort(a, a+3);
if (a[0]+a[1] <= a[2]){cout << a[0]+a[1] << '
';}
else { cout << min((a[0]+a[1]+a[2])/2, a[0]+a[1]) << '
';