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;
int trie[200001][26];
bitset<200001>var[2];
int las=1;
void ekle(string word,bool player){
int pos=0;
for(char c:word){
if(!trie[pos][c-'a']){
trie[pos][c-'a']=las++;
}
pos=trie[pos][c-'a'];
var[player][pos]=true;
}
}
bool dfs(int pos,bool sira){
if(pos&&!var[sira][pos])return !sira;
for(int i=0;i<26;i++){
if(!trie[pos][i])continue;
if(!var[sira][trie[pos][i]])continue;
if(dfs(trie[pos][i],sira^1)==sira)return sira;
}
return !sira;
}
int main(){
ios_base::sync_with_stdio(false);cin.tie(NULL);
int n;cin>>n;
for(int i=0;i<n;i++){
string s;cin>>s;
ekle(s,0);
}
cin>>n;
for(int i=0;i<n;i++){
string s;cin>>s;
ekle(s,1);
}
if(dfs(0,0))cout<<"Emilija";
else cout<<"Nina";
}
# | 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... |