제출 #632863

#제출 시각아이디문제언어결과실행 시간메모리
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...