解いた問題

7/14/2011

SRM457 Div1 Easy

250
間違う場所が満載な気がする。
class TheTriangleBothDivs {
public:
  string fix(string time) {

    string mn(1, CHAR_MAX);
    char s[12];
    char t[12];

    for(int h=0; h<24; ++h){
      for(int m=0; m<60; ++m){
        for(int z=0; z<=9; ++z){
          for(int y=0; y<=1; ++y){
            if( z == 0 && y == 1 )continue;
            sprintf(s, "%02d:%02d GMT%c%d", h, m, (y ? '-' : '+'), z);
            bool flg = true;
            for(int i=0; i<time.size(); ++i){
              flg = flg && ( time[i] == '?' || time[i] == s[i] );
            }
            if( !flg )continue;
            sprintf(t, "%02d:%02d",    ((y ? h + z : h - z) + 24) % 24, m);
            mn = min( mn, string(t) );
          }
        }
      }
    }

    return mn;
  }
};

0 件のコメント :

コメントを投稿