結果

問題 No.380 悪の台本
ユーザー tkmst201tkmst201
提出日時 2017-04-28 20:36:23
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 130 ms / 1,000 ms
コード長 1,686 bytes
コンパイル時間 2,265 ms
コンパイル使用メモリ 146,180 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-08-06 20:17:44
合計ジャッジ時間 2,485 ms
ジャッジサーバーID
(参考情報)
judge11 / judge13
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,376 KB
testcase_01 AC 1 ms
4,376 KB
testcase_02 AC 2 ms
4,380 KB
testcase_03 AC 1 ms
4,376 KB
testcase_04 AC 7 ms
4,380 KB
testcase_05 AC 16 ms
4,380 KB
testcase_06 AC 16 ms
4,376 KB
testcase_07 AC 130 ms
4,376 KB
testcase_08 AC 4 ms
4,380 KB
testcase_09 AC 8 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>

using namespace std;

#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,n) FOR(i,0,n)
#define ALL(v) (v).begin(),(v).end()

template<typename A, typename B> inline bool chmax(A &a, B b) { if (a<b) { a=b; return 1; } return 0; }
template<typename A, typename B> inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; }

typedef unsigned long long ull;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<int, pii> P;

const ll INF = 1ll<<60;
const ll MOD = 1000000007;
const double EPS  = 1e-10;

string str;

bool check(string s) {
	if (str.rfind(s) == string::npos) return false;
	else {
		int p = str.rfind(s);
		p += s.size();
		
		bool res = true;
		REP(i, 3) {
			if (p + i >= str.size()) break;
			if (isalnum(str[p + i])) res = false;
		}
		if (p + 3 < str.size()) res = false;
		
		return res;
	}
}

int main() {
	
	while (getline(cin, str)) {
		bool ok = true;
		
		if (str.find(' ') == string::npos) ok = false;
		else {
			int p = str.find(' ') + 1;
			string name = str.substr(0, p - 1);

			FOR(i, p, str.size()) str[i] = tolower(str[i]);
			
			if (name == "digi") {
				if (!check("nyo")) ok = false;
			}
			else if (name == "petit") {
				if (!check("nyu")) ok = false;
			}
			else if (name == "rabi") {
				bool f = false;
				FOR(i, p, str.size()) if (isalnum(str[i])) f = true;
				if (!f) ok = false;
			}
			else if (name == "gema") {
				if (str.find("gema") == str.rfind("gema") || !check("gema")) ok = false;
			}
			else if (name == "piyo") {
				if (!check("pyo")) ok = false;
			}
			else ok = false;
			
		}
		
		puts(ok ? "CORRECT (maybe)" : "WRONG!");
	}
	
	return 0;
}
0