Submission #632863

#TimeUsernameProblemLanguageResultExecution timeMemory
632863van_hoangVlak (COCI20_vlak)C++17
0 / 70
54 ms102924 KiB
#include "bits/stdc++.h"

using namespace std;

#ifndef LOCAL
#define debug(...) 86
#endif

const int maxN = 1e6 + 5;
int N, M, nxt = 1, mask[maxN][26], pS[maxN], pT[maxN], D[maxN];
queue<int> qu;

int main() {
    ios::sync_with_stdio(0), cin.tie(0);
    
    cin >> N;
    memset(mask, -1, sizeof mask);
    for (int i = 0; i < N; ++i) {
        string s; cin >> s;
        int cur = 1;
        for (auto &x : s) {
            int j = x - 'a';
            if (mask[cur][j] != -1) {
                cur = mask[cur][j];
            }
            else {
                mask[cur][j] = ++nxt;
                cur = nxt;
            }
            pS[cur] = 1;
        }
    }
    cin >> M;
    for (int i = 0; i < M; ++i) {
        string s; cin >> s;
        int cur = 1;
        for (auto &x : s) {
            int j = x - 'a';
            if (mask[cur][j] != -1) {
                cur = mask[cur][j];
            }
            else {
                mask[cur][j] = ++nxt;
                cur = nxt;
            }
            pT[cur] = 1;
        }
    }
    qu.emplace(1);
    while (qu.size()) {
        int u = qu.front(); qu.pop();
        bool found = false;
        for (int j = 0; j < 26; ++j) {
            if (mask[u][j] != -1) {
                if ((!D[u] && pS[mask[u][j]]) || (D[u] && pT[mask[u][j]])) {
                    found = true;
                    D[mask[u][j]] = D[u] ^ 1;
                    qu.emplace(mask[u][j]);
                }
            }
        }
        if (!found && D[u]) {
            cout << "Nina\n";
            return 0;
        }
    }
    cout << "Emilija\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...