// これが通ったら怒る #include 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') || c == ' ' ) { 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, 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; }