【题目链接】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. 情况1:a+b<=c
  2. 情况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] << '\n';}
        else { cout << min((a[0]+a[1]+a[2])/2, a[0]+a[1]) << '\n';