Submission #520153

#TimeUsernameProblemLanguageResultExecution timeMemory
520153AkiYuuVlak (COCI20_vlak)C++17
70 / 70
10 ms9932 KiB
/* Problems: Author: AkiYuu */ #include <bits/stdc++.h> #define task "GROUP" #define ll long long #define ld long double #define pb(u) emplace_back(u) #define ffw(i,a,b) for (ll i = a; i <= b; i++) #define fbw(i,b,a) for (ll i = b; i >= a; i--) #define adj(v,adj,u) for (auto v : adj[u]) #define rep(i,a) for (auto i : a) #define reset(a) memset(a, 0, sizeof(a)) #define sz(a) a.size() #define all(a) a.begin(),a.end() using namespace std; void fastio(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); // freopen(task".inp", "r", stdin); // freopen(task".out", "w", stdout); } const int mxn = 1e6 + 5; typedef pair<ll, ll> ii; int trie[2000005][26], dem = 0; int can[2000005 * 26]; int n, m; bool winner[2000005 * 26]; void add(string s, int col){ int node = 0; for (char c : s){ int x = c - 'a'; can[node] |= ( 1 << col ); if (trie[node][x] == 0) { trie[node][x] = ++dem; } node = trie[node][x]; } } int calc(int u, int player){ if( !(can[u] & ( 1 << player ) ) ) return 0; ffw(i,0,25){ if ( trie[u][i] == 0) continue; int v = trie[u][i]; if ( !calc(v, player ^ 1) ){ return 1; } } return 0; } string ans[2] = {"Emilija", "Nina"}; void solve(){ cin >> n; ffw(i,1,n){ string s; cin >> s; add(s,0); } cin >> m; ffw(i,1,m){ string s; cin >> s; add(s,1); } cout << ans[calc(0,0) ]<< '\n'; } int main(){ fastio(); int 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...