제출 #1283287

#제출 시각아이디문제언어결과실행 시간메모리
1283287catsarecool5530Vlak (COCI20_vlak)C++20
0 / 70
1 ms572 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define endl "\n";
#define all(x) x.begin(), x.end()
#define int long long
const int MOD = 1e9 + 7;
const ll INF = 1e18;
 
const int N = 10;

int trieA[N][26];
int trieB[N][26];
int nodeCount;

void insert(int trie[N][26], string& s) {
    int node = 1;
    for (char c : s) {
        if (trie[node][c-'a'] == 0) {
            trie[node][c-'a'] = ++nodeCount;
        }
        node = trie[node][c-'a'];
    }
}
const int Alice = 0;
const int Bob = 1;
bool rec(bool turn, int nodeA, int nodeB) {
    bool res = 0;
    if (turn == Alice) {
        if (nodeB == 0) return 1; // winner! 
        if (nodeA == 0) return 0; // loser! (but winner first)
        
        for (int next = 0; next < 26; next++) {
            res |= !rec(!turn, trieA[nodeA][next], trieB[nodeB][next]);
        }
        return res;
    } else {
        if (nodeA == 0) return 1;
        if (nodeB == 0) return 0;
        
        for (int next = 0; next < 26; next++) {
            res |= !rec(!turn, trieA[nodeA][next], trieB[nodeB][next]);
        }
        return res;
    }
}


void solve() {
    int n; cin >> n;
    vector<string> a(n);
    nodeCount = 1;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        insert(trieA, a[i]);
    }
    int m; cin >> m;
    vector<string> b(m);
    nodeCount = 1;
    for (int i = 0; i < m; i++) {
        cin >> b[i];
        insert(trieB, b[i]);
    }

    bool ans = rec(0, 1, 1);
    if (ans == 1) {
        cout << "Nina\n";
    } else {
        cout << "Emilija\n";
    }
}
 
signed main() {
    ios::sync_with_stdio(0); cin.tie(NULL);
    // freopen("island.in", "r", stdin);
    // freopen("ans.out", "w", stdout);
    ll t = 1; //cin >> t;
    while (t--) {
        solve();
    }
}
#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...