TheTriangleBothDivs

日課消化。ちょっと手こずった。
2通りの解法があった時にどちらを選択すべきか、の判断がまだまだ甘い。

class TheTriangleBothDivs {
private:
	bool check(string a, string b){
		for(unsigned int i=0; i<a.size(); i++){
			if(a[i] != '?' && a[i] != b[i]){
				return false;
			}
		}
		return true;
	}


public:
	string fix(string time) {
		int result=23*60+59;

		for(int hour=0; hour<24; hour++){
			for(int min=0; min<60; min++){
				for(int gmt=-9; gmt<=+9; gmt++){
					char clock[16];
					sprintf(clock,"%02d:%02d GMT%+2d", hour, min, gmt);
					if(check(time,clock)){
						if(result > ((hour-gmt+24)%24) * 60 + min)	result = ((hour-gmt+24)%24) * 60 + min;
					}
				}
			}
		}


		char res[16];
		sprintf(res,"%02d:%02d", (result/60),(result%60));

		return res;
	}
};