結果
| 問題 |
No.380 悪の台本
|
| コンテスト | |
| ユーザー |
FF256grhy
|
| 提出日時 | 2016-06-18 00:48:27 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,529 bytes |
| コンパイル時間 | 264 ms |
| コンパイル使用メモリ | 24,064 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-06 22:52:28 |
| 合計ジャッジ時間 | 1,015 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 1 WA * 6 RE * 1 |
ソースコード
#include <stdio.h>
char str[100000];
int i;
bool eq(int pos, int len, const char* const t) {
if( ! (pos + len <= i) ) { return false; }
for(int j = 0; j < len; j++) {
if(str[pos + j] != t[j]) { return false; }
}
return true;
}
bool eq_2(int pos, int len, const char* const t) {
if( ! (pos + len <= i) ) { return false; }
for(int j = 0; j < len; j++) {
char a = str[pos + j], b = t[j];
if( ! (a == b || a + ('a' - 'A') == b) ) { return false; }
}
return true;
}
bool is_sym(int j) {
char c = str[j];
if(
('a' <= c && c <= 'z') ||
('A' <= c && c <= 'Z') ||
('0' <= c && c <= '9')
) { return false; }
return true;
}
bool f(const char* const t, int j, const char* const u, int k) {
if( ! eq(0, j, t) ) { return false; }
for(int l = 0; l < 4; l++) {
bool flag = eq_2(i - (k + l), k, u);
for(int m = 0; m < l; m++) {
flag = flag && is_sym(i - l + m);
}
if(flag) { return true; }
}
return false;
}
bool d() {
return f("digi ", 5, "nyo", 3);
}
bool pe() {
return f("petit ", 6, "nyu", 3);
}
bool g() {
return f("gema ", 5, "gema", 4);
}
bool pi() {
return f("piyo ", 5, "pyo", 3);
}
bool r() {
if( ! eq(0, 4, "rabi ") ) { return false; }
for(int j = 5; j < i; j++) {
if( is_sym(j) ) { return true; }
}
return false;
}
int main() {
i = 0;
while(true) {
str[i] = getchar();
if(str[i] == EOF) { break; }
if(str[i] == '\n') {
printf("%s\n", d() || pe() || g() || pi() || r() ? "CORRECT (maybe)" : "WRONG!");
i = 0;
continue;
}
i++;
}
return 0;
}
FF256grhy