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