sdibt 1995 Flowers (贪心)

链接:sdibt 1995

题意:一束红色的花需要3多红花,一束绿色的花需要三朵绿花,一束蓝色的花需要三朵蓝,

当然,可以用红,绿,蓝个一朵,可以组成一束混合的花

已知红,绿,蓝 花的数量,求最多可以组成多少束花。

分析一般情况,我们可以先求出三种颜色的花数量(设为a,b,c)的最小值 m,这样可以形成m束混合的花,在分别加上剩下的花(a-m,b-m,c-m)可形成的单色花束.

特殊情况如果按上述情况最后剩下的花数量为 2,2,0的组合,除原本a,b,c中没有为0的情况外,总花束要加1.

例如: 2 2 0    0

       3 3 1    2

       4 4 2    3

       5 5 3    4

代码:      

#include<stdio.h>
int main()
{
    int a,b,c,s,m,n;
    while(scanf("%d%d%d",&a,&b,&c)!=EOF){
        m=a;
        if(b<m)
            m=b;
        if(c<m)
            m=c;
        a-=m;
        b-=m;
        c-=m;
        s=m+a/3+b/3+c/3;
        if((m&&a%3==2&&b%3==2&&c%3==0)||(m&&a%3==2&&c%3==2&&b%3==0)||(m&&c%3==2&&b%3==2&&a%3==0))
            s++;
        printf("%d\n",s);
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值