This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<iostream>
using namespace std;
const int MAX=2e5+5;
int n,m;
int id,nex[26][MAX];
short val[MAX];
void add(string s,int x){
int c=0;
for(auto i:s){
int z=i-'a';
if(!nex[z][c]) nex[z][c]=++id;
c=nex[z][c];
val[c]|=x;
}
}
#define BIT(x,i) (x>>i&1)
bool DFS(int node,bool x){
bool Fin=0;
for(int i=0;i<26;i++) if(nex[i][node]){
int z=nex[i][node];
if(!BIT(val[z],x)) continue;
if(!BIT(val[z],!x)) return 1;
else if(!DFS(z,!x)){Fin=1; break;}
}
return Fin;
}
int main(){
string s;
cin>>n;
for(int i=1;i<=n;i++) cin>>s, add(s,1);
cin>>m;
for(int i=1;i<=m;i++) cin>>s, add(s,2);
cout<<(DFS(0,0)?"Nina":"Emilija");
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... |