#include <bits/stdc++.h>
using namespace std;
#define __ ios::sync_with_stdio(0); cin.tie(NULL);
#define pb push_back
#define int long long
#define rep(i,n) for(int i=0;i<n;i++)
#define all(x) x.begin(),x.end()
const int mxn = 5010;
const int mxw = 2e5+10;
const int INF = 1e18;
const int mod = 1e9+7;
vector<vector<int>> trie(mxw,vector<int>(26));
int cnt = 0;
vector<int> stop(mxw);
vector<int> longest(mxw);
vector<int> nina(mxw);
vector<int> emi(mxw);
void insert(string s,int v){
int node = 0;
for(char c : s){
if(trie[node][c-'a'] == 0) {
trie[node][c-'a'] = ++cnt;
}
node = trie[node][c-'a'];
if(v==1) nina[node] = 1;
if(v==2) emi[node] = 1;
}
stop[node] = 1;
}
int win = 0;
bool dfs(int s,int r){
for(int i=0;i<26;i++){
int v = trie[s][i];
if(trie[s][i]) {
int valid = (r==0 ? nina[v] : emi[v]);
if(valid){
if(!dfs(v,1-r)){
return true;
}
}
}
}
return false;
}
void solve(){
int n; cin >> n;
int mx = 0;
rep(i,n){
string s; cin >> s;
insert(s,1);
}
int m; cin >> m;
rep(i,m){
string s; cin >> s;
insert(s,2);
}
cout << (dfs(0,0) == 1 ? "Nina" : "Emilija") << endl;
// cout << nina[4] << endl;
// cout << trie[0][1] << endl;
}
signed main(){ __
int T = 1;
// cin >> T;
while(T--){
solve();
}
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |