AOJ1077:The Great Summer Contest
方針
問題は6種類あるように見えて実は3種類しかない。
Math or DP -> MD
Greedy or Graph -> GG
Geometry or Other -> GO
とすると、
MD,GG,GOのコンテストを3回開くのはそれぞれ3問のコンテストを1回ずつ開くのと変わらないので
MD,GG,GOの組み合わせはたかだか2回まで調べればいいということが解る。
あとはやるだけ。
以下ソースコード
#include <iostream> #include <algorithm> using namespace std; int main(void){ int a,b,c,d,e,f; while(cin >> a >> b >> c >> d >> e >> f){ if((a|b|c|d|e|f) == 0) break; int MD = a + d, GG = b + e, GO = c + f; int ret = 0; for(int i=0;i<=2;i++){ if(MD >= i && GG >= i && GO >= i) ret = max(ret, (MD-i)/3 + (GG-i)/3 + (GO-i)/ 3 + i); } cout << ret << endl; } }