제출 #1137259

#제출 시각아이디문제언어결과실행 시간메모리
1137259aykhnVlak (COCI20_vlak)C++20
70 / 70
15 ms10308 KiB
#include <bits/stdc++.h> using namespace std; const int MXN = 2e5 + 5; int nd = 1; int dp[MXN], has[MXN], dep[MXN]; int adj[26][MXN]; void add(string &s, int f) { int cur = 1; for (int i = 0; i < s.length(); i++) { if (!adj[s[i] - 'a'][cur]) adj[s[i] - 'a'][cur] = ++nd; dep[adj[s[i] - 'a'][cur]] = dep[cur] ^ 1; cur = adj[s[i] - 'a'][cur]; has[cur] |= (1 << f); } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for (int i = 1; i <= n; i++) { string s; cin >> s; add(s, 0); } int m; cin >> m; for (int i = 1; i <= m; i++) { string s; cin >> s; add(s, 1); } for (int i = nd; i >= 1; i--) { for (int j = 0; j < 26; j++) { if (!adj[j][i]) continue; if (!dep[i] && !(has[adj[j][i]] & 1)) continue; if (dep[i] && !(has[adj[j][i]] & 2)) continue; dp[i] |= !dp[adj[j][i]]; } } if (dp[1]) cout << "Nina\n"; else 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...