45pts 求调
查看原帖
45pts 求调
1286053
Nostopathy楼主2024/3/26 21:47

Record

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#define int long long int
using std::cin;
using std::string;

int n, q, c, p, i, _; string a[13], s;

bool ic (char c) {
    return c == 'a' or c == 'e' or c == 'i' or c == 'o' or c == 'u';
} signed main () {
    cin >> n >> q; for (i = 1; i <= n; i++) {
        cin >> a[i];
    } for (_ = 1; _ <= q; _++) {
        cin >> s; c = 0;
        
        for (i = 1; i <= n; i++) {
            p = s.find(a[i]); if (p == s.npos) {
                continue;
            } while (p != s.npos) {
                if ((p and ic(s[p]) and ! ic(s[p - 1])) or (! ic[s[p]]) and p and ! ic(s[p - 1]) and s[p - 1] != 'n') {
                    p = s.find(a[i], p + 1); continue;
                } if ((s[p + a[i].size() - 1] == 'n' and (p + a[i].size() >= s.size() or (p + a[i].size() < s.size() and ! ic(s[p + a[i].size()])))) or s[p + a[i].size() - 1] != 'n') {
                    c++; break;
                }
                
                p = s.find(a[i], p + 1);
            }
        }
        
        if (c == 1) {
            puts("Yes, Commander");
        } else {
            puts("No, Commander");
        }
    }
}

谢谢QaQ

2024/3/26 21:47
加载中...