Submission #632864

#TimeUsernameProblemLanguageResultExecution timeMemory
632864van_hoangVlak (COCI20_vlak)C++17
70 / 70
45 ms102716 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], state[maxN]; queue<int> qu; string ans[2] = {"Emilija", "Nina"}; bool DFS(int u, int turn) { if (!(state[u] & (1 << turn))) return false; for (int j = 0; j < 26; ++j) { if (mask[u][j] != -1 && !DFS(mask[u][j], turn ^ 1)) { return true; } } return false; } int main() { ios::sync_with_stdio(0), cin.tie(0); cin >> N; memset(mask, -1, sizeof mask); state[1] = 3; 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; } state[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; } state[cur] |= 2; } } cout << ans[DFS(1, 0)] << '\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...