有红绿蓝三种颜色的画,每种拿三朵可以组成一束花,或者各拿一朵组成花束,告诉你每种花的数目,求出可能组成最多的花束。
如果你的代码过不了,考虑一下 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; }