結果
問題 | No.380 悪の台本 |
ユーザー | FF256grhy |
提出日時 | 2017-01-26 00:27:28 |
言語 | C++11 (gcc 11.4.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 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 0 ms
5,248 KB |
testcase_01 | AC | 1 ms
5,248 KB |
testcase_02 | AC | 1 ms
5,248 KB |
testcase_03 | AC | 1 ms
5,248 KB |
testcase_04 | AC | 1 ms
5,248 KB |
testcase_05 | AC | 2 ms
5,248 KB |
testcase_06 | AC | 2 ms
5,248 KB |
testcase_07 | AC | 6 ms
5,248 KB |
testcase_08 | AC | 2 ms
5,248 KB |
testcase_09 | AC | 1 ms
5,248 KB |
ソースコード
// #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; }