結果
問題 | No.380 悪の台本 |
ユーザー |
![]() |
提出日時 | 2017-01-26 00:27:28 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 6 ms / 1,000 ms |
コード長 | 1,577 bytes |
コンパイル時間 | 157 ms |
コンパイル使用メモリ | 23,936 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-06 23:21:52 |
合計ジャッジ時間 | 740 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 8 |
ソースコード
//#include <stdio.h>char str[102500];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++) {if(i - (k + l) < j) { continue; }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, 5, "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;}