题目链接
有红绿蓝三种颜色的画,每种拿三朵可以组成一束花,或者各拿一朵组成花束,告诉你每种花的数目,求出可能组成最多的花束。
如果你的代码过不了,考虑一下 8 8 9这种组合。 因为数据量很大,我的思想就是局部和总体采用不同的策略。
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int r, g, b;
while (cin >> r >> g >> b)
{
int m = min(r, g);
m = min (m, b);
int ans = 0;
int a = 0;
for (int i = 0; i <= 10000 && i <= m; i++)
{
a = (r-i)/3 + (g-i)/3 + (b-i)/3 + i;
ans = max(a, ans);
}
cout << ans << endl;
}
return 0;
}