题意:一束红色的花需要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;
}