結果
| 問題 |
No.380 悪の台本
|
| コンテスト | |
| ユーザー |
beet
|
| 提出日時 | 2019-04-19 17:12:35 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,507 bytes |
| コンパイル時間 | 2,638 ms |
| コンパイル使用メモリ | 209,776 KB |
| 最終ジャッジ日時 | 2025-01-07 02:35:23 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 5 WA * 3 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
using Int = long long;
template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}
//INSERT ABOVE HERE
signed main(){
string str;
map<string, string> ch;
ch["digi"]="nyo";
ch["petit"]="nyu";
ch["rabi"]="a";
ch["gema"]="gema";
ch["piyo"]="pyo";
auto YES=[](){cout<<"CORRECT (maybe)\n";};
auto NO=[](){cout<<"WRONG!\n";};
auto is_symbol=
[](char c){
if(isalpha(c)) return false;
if(isdigit(c)) return false;
return true;
};
while(getline(cin,str)){
assert(str.back()!=' ');
if(count(str.begin(),str.end(),' ')==0){
NO();
continue;
}
stringstream ss(str);
string name;
ss>>name;
if(!ch.count(name)){
YES();
continue;
}
string tmp=str.substr(name.size());
string s;
for(char c:tmp) s+=tolower(c);
int cnt=0;
for(char c:s) cnt+=!is_symbol(c);
if(cnt<(int)ch[name].size()){
NO();
continue;
}
if(name=="rabi"){
YES();
continue;
}
int num=0;
while(is_symbol(s.back())){
num++;
s.pop_back();
}
if(num>3){
NO();
continue;
}
assert(s.size()>=ch[name].size());
string t=s.substr(s.size()-ch[name].size());
if(t==ch[name]) YES();
else NO();
}
cout<<flush;
return 0;
}
beet