Description
有 r,g,b 支红色、蓝色、绿色的花,一束花要么用三支一样颜色的花要么用三支颜色都不一样的花,问最多可以扎多少束花
Input
三个整数 r,g,b(0≤r,g,b≤109)
Output
输出最多可以扎的花的数量
Sample Input
3 6 9
Sample Output
6
Solution
三束 rgb 可以拆分成 rrr,ggg,bbb ,故最优解对应的 rgb 其实只有 0,1,2 三种情况,枚举一下找最优解即可
Code
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<ctime>
using namespace std;
typedef long long ll;
typedef pair<int,int>P;
const int INF=0x3f3f3f3f,maxn=100001;
int main()
{
int r,g,b;
while(~scanf("%d%d%d",&r,&g,&b))
{
int ans=0,mn=min(min(2,r),min(g,b));
for(int i=0;i<=mn;i++)
ans=max(ans,i+(r-i)/3+(g-i)/3+(b-i)/3);
printf("%d\n",ans);
}
return 0;
}