結果
| 問題 |
No.380 悪の台本
|
| コンテスト | |
| ユーザー |
ei1333333
|
| 提出日時 | 2016-06-17 22:48:10 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,207 bytes |
| コンパイル時間 | 1,667 ms |
| コンパイル使用メモリ | 170,580 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-06 22:36:51 |
| 合計ジャッジ時間 | 2,490 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 7 WA * 1 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
bool ispoyo(char c)
{
return(!isalpha(c) && !isdigit(c));
}
int main()
{
map< string, string > dump;
dump["digi"] = "oyn";
dump["petit"] = "uyn";
dump["gema"] = "ameg";
dump["piyo"] = "oyp";
string buf;
while(getline(cin, buf)) {
istringstream sss(buf);
string T;
sss >> T;
string K;
bool error = false;
auto p = dump.find(T);
if(p != dump.end()) {
reverse(buf.begin(), buf.end());
buf = buf.substr(0, buf.size() - p -> first.size());
int back = 0;
while(back < buf.size() && ispoyo(buf[back])) ++back;
if(back > 3) {
error = true;
} else {
for(int i = 0; i < buf.size(); i++) {
if(isalpha(buf[i])) buf[i] = tolower(buf[i]);
}
if(buf.substr(back).find(p -> second) != 0) {
error = true;
}
}
} else if(T == "rabi") {
bool ok = false;
buf = buf.substr(5);
for(int i = 0; i < buf.size(); i++) {
ok |= !ispoyo(buf[i]);
}
if(!ok) error = true;
} else error = true;
if(error) cout << "WRONG!" << endl;
else cout << "CORRECT (maybe)" << endl;
}
}
ei1333333