Submission #1153919

#TimeUsernameProblemLanguageResultExecution timeMemory
1153919itslqVlak (COCI20_vlak)C++20
0 / 70
21 ms28488 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAX = 2e5;

vector<int> letter(MAX), dep(MAX);
vector<bool> ni(MAX, false), em(MAX, false);
vector<vector<int>> children(MAX, vector<int>(26, -1));

bool emilija(int n);

bool nina(int n) {
    for (int i = 0; i < 26; i++) {
        if (children[n][i] != -1 && ni[children[n][i]]) {
            if (!emilija(children[n][i])) {
                return true;
            }
        }
    }
    return false;
}

bool emilija(int n) {
    for (int i = 0; i < 26; i++) {
        if (children[n][i] != -1 && em[children[n][i]]) {
            if (!nina(children[n][i])) {
                return true;
            }
        }
    }
    return false;
}

int main() {
    int N, M, cur, cnt = 1, l; 
    string word;

    cin >> N;
    for (int i = 0; i < N; i++) {
        cin >> word;
        cur = 0;
        for (int j = 0; j < word.size(); j++) {
            l = word[j] - 'a';
            if (children[cur][l] == -1) {
                children[cur][l] = cnt;
                dep[cnt] = dep[cur] + 1;
                letter[cur = cnt++] = l;
            } else {
                cur = children[cur][l];
            }
            ni[cur] = true;
        }
    }

    cin >> M;
    for (int i = 0; i < M; i++) {
        cin >> word;
        cur = 0;
        for (int j = 0; j < word.size(); j++) {
            l = word[j] - 'a';
            if (children[cur][l] == -1) {
                children[cur][l] = cnt;
                dep[cnt] = dep[cur] + 1;
                letter[cur = cnt++] = l;
            } else {
                cur = children[cur][l];
            }
            em[cur] = true;
        }
    }

    cout << (nina(0) ? "Nina" : "Emilijia");
}
#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...