#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,i;
struct node{
node* v[26];
bool k;
node(bool _k): k(_k) {}
void add(string s){
if(!s.size()) return;
if(!v[s[0]-'a'])
v[s[0]-'a']=new node(k^1);
v[s[0]-'a']->add(s.substr(1,(int)s.size()-1));
}
bool qry(){
for(auto&nx:v){
if(!nx) continue;
if(nx->qry()==k^1) return k^1;
}
return k;
}
} *root;
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin>>n;
root=new node(1);
for(i=0;i<n;++i){
string s; cin>>s;
string r="";
for(int j=0;j<(int)s.size();++j){
r+=s[j];
if(j&1^1) root->add(r);
}
}
int m; cin>>m;
for(int i=0;i<m;++i){
string s; cin>>s;
string r="";
for(int j=0;j<(int)s.size();++j){
r+=s[j];
if(j&1) root->add(r);
}
}
cout<<(root->qry()?"Emilija\n":"Nina\n");
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... |