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<bits/stdc++.h>
using namespace std;
#define int long long
#define F first
#define S second
#define all(x) x.begin(),x.end()
#define pii pair<int,int>
#define pb push_back
#define sz(x) (int)(x.size())
#define chmin(x,y) x=min(x,y)
#define chmax(x,y) x=max(x,y)
#define vi vector<int>
#define vp vector<pii>
#define vvi vector<vi>
const int mxn=2e5+5;
int trie[2][mxn][26];
int nxt=1;
vector<string>s,ss;
int n,m;
void add(string s,int type){
int i=0,v=0;
while(i<sz(s)){
//cout<<v<<' ';
if(trie[type][v][s[i]-'a']){
v=trie[type][v][s[i++]-'a'];
}
else{
v=trie[type][v][s[i++]-'a']=nxt++;
}
}//cout<<v<<'\n';
}
bool calc(int now,int turn,int v1,int v2){
for(int i=0;i<26;i++){
int a=trie[0][v1][i];
int b=trie[1][v2][i];
if(turn==0){
if(a and !b)return 0;
if(a and b and !calc(i,1,a,b))return 0;
}
else{
if(!a and b)return 1;
if(a and b and calc(i,0,a,b))return 1;
}
}
return 1-turn;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=0;i<n;i++){
string temp;
cin>>temp;
add(temp,0);
}
cin>>m;
nxt=1;
for(int i=0;i<m;i++){
string temp;
cin>>temp;
add(temp,1);
}
cout<<(calc(0,0,0,0)==0?"Nina":"Emilija")<<'\n';
}
# | 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... |