結果
問題 | No.380 悪の台本 |
ユーザー |
![]() |
提出日時 | 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 HEREsigned 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;}