Submission #439454

#TimeUsernameProblemLanguageResultExecution timeMemory
439454ldn694Vlak (COCI20_vlak)C++17
70 / 70
13 ms10060 KiB
#include <bits/stdc++.h> #define fu(i, a, b) for (int i = a; i <= b; i++) #define fd(i, a, b) for (int i = a; i >= b; i--) using namespace std; const int N = 2e5 + 10; int num[2]; int trie[N][27], sz = 0; bool ticket[N][2]; void Insert(const string &a, int o) { int pos = 0; for (char x : a) { int v = int(x) - 96; if (!trie[pos][v]) trie[pos][v] = ++sz; ticket[trie[pos][v]][o] = true; pos = trie[pos][v]; } } bool win(int u, int o) { bool passed = false; fu(i, 1, 26) { if (!trie[u][i]) continue; if (!ticket[trie[u][i]][o]) continue; passed |= !win(trie[u][i], 1 - o); if (passed) break; } return passed; } int main() { cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); fu(i, 0, 1) { cin >> num[i]; fu(j, 1, num[i]) { string s; cin >> s; Insert(s, i); } } cout << (win(0, 0) ? "Nina" : "Emilija"); }
#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...