Codeforces Round #603 (Div. 2) A. Sweet Problem

【题目链接】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';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值