#include<bits/stdc++.h>
using namespace std;
int n,m,i,j;
string s,r;
struct node{
node* v[26];
bool k;
node(bool _k): k(_k) {}
void add(string s,int i){
if(i==s.size()) return;
if(!v[s[i]-'a'])
v[s[i]-'a']=new node(k^1);
v[s[i]-'a']->add(s,i+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){
cin>>s;
for(j=0,r="";j<(int)s.size();++j){
r+=s[j];
if(j&1^1) root->add(r,0);
}
}
cin>>m;
for(i=0;i<m;++i){
cin>>s;
for(j=0,r="";j<(int)s.size();++j){
r+=s[j];
if(j&1) root->add(r,0);
}
}
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... |