結果

問題 No.380 悪の台本
ユーザー alpha_virginis
提出日時 2016-06-17 23:29:38
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 139 ms
コード長 1,399 Byte
コンパイル時間 1,028 ms
使用メモリ 1,828 KB
最終ジャッジ日時 2019-10-08 13:27:31

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
challenge01.txt AC 3 ms
1,516 KB
hand AC 3 ms
1,520 KB
sample1 AC 3 ms
1,520 KB
sample2 AC 3 ms
1,524 KB
test1 AC 12 ms
1,532 KB
test2 AC 27 ms
1,520 KB
test3 AC 26 ms
1,520 KB
test4 AC 139 ms
1,496 KB
test5 AC 7 ms
1,828 KB
test6 AC 14 ms
1,528 KB
テストケース一括ダウンロード

ソースコード

diff #
#include <bits/stdc++.h>

bool check(std::string& str, std::string t, int remain) {
  if( str.size() < t.size() ) return false;
  bool b = true;
  for(int i = 0; i < (int)t.size(); ++i) {
    if( toupper(str[str.size()-t.size()+i]) != toupper(t[i]) ) {
      b = false;
      break;
    }
  }
  if( b ) return true;
  if( remain <= 0 ) return false;
  char c = str[str.size()-1];
  if( isalnum(c) ) return false;
  str.pop_back();
  return check(str, t, remain - 1);
}

int main() {
  for(;;) {
    std::string name, str, temp;
    if( not std::getline(std::cin, temp) ) break;
    for(int i = 0; i < (int)temp.size(); ++i) {
      if( temp[i] != ' ' ) {
        name += temp[i];
      }
      else {
        for(int j = i; j < (int)temp.size(); ++j) {
          str += temp[j];
        }
        goto label_1;
      }
    }
  label_1:;
    //if( not ( std::cin >> name ) ) break;
    //std::getline(std::cin, str);
    bool res = false;
    if( name == "digi" )  res = check(str, "nyo", 3);
    if( name == "petit" ) res = check(str, "nyu", 3);
    if( name == "gema" )  res = check(str, "gema", 3);
    if( name == "piyo" )  res = check(str, "pyo", 3);
    if( name == "rabi" ) {
      bool b = false;
      for(int i = 0; i < (int)str.size(); ++i) {
        if( isalnum(str[i]) ) b = true;
      }
      res = b;
    }
    printf("%s\n", res ? "CORRECT (maybe)" : "WRONG!");
  }
  
  return 0;
}
0