結果

問題 No.380 悪の台本
ユーザー alpha_virginisalpha_virginis
提出日時 2016-06-17 22:49:00
言語 C++11
(gcc 11.4.0)
結果
WA  
実行時間 -
コード長 1,072 bytes
コンパイル時間 1,380 ms
コンパイル使用メモリ 160,220 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-11-06 22:37:21
合計ジャッジ時間 1,972 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 WA -
testcase_02 AC 2 ms
5,248 KB
testcase_03 AC 2 ms
5,248 KB
testcase_04 AC 7 ms
5,248 KB
testcase_05 AC 17 ms
5,248 KB
testcase_06 WA -
testcase_07 WA -
testcase_08 AC 4 ms
5,248 KB
testcase_09 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:37:11: warning: ‘res’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   37 |     printf("%s\n", res ? "CORRECT (maybe)" : "WRONG!");
      |     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ソースコード

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;
    if( not ( std::cin >> name ) ) break;
    std::getline(std::cin, str);
    bool res;
    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