Isa@Diary

ソフトウェア開発やってます。プログラミングとか、US生活とかについて書きます。

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;
	}
}