#include <bits/stdc++.h>
using namespace std;
#define MAXI 200200
int trie[MAXI][26];
int par[MAXI];
int has[MAXI][2];
int dp[MAXI];
int id=0;
void insert(string s, int i) {
int n=0;
for(char c : s) {
int &t=trie[n][c-'a'];
if(!t) {
t=++id;
par[t]=par[n]^1;
}
n=t;
has[n][i]=1;
}
}
int main() {
memset(trie, 0, sizeof(trie));
memset(dp, 0, sizeof(dp));
memset(par, 0, sizeof(par));
cin.tie(nullptr);
ios::sync_with_stdio(false);
int n;
cin >> n;
while(n--) {
string s;
cin >> s;
insert(s, 0);
}
int m;
cin >> m;
while(m--) {
string s;
cin >> s;
insert(s, 1);
}
for(int i=id;i>=0;i--) {
int j=par[i];
for(int k=0;k<26;k++) {
int t=trie[i][k];
if(t&&has[t][j]&&!dp[t]) {
dp[i]=1;
break;
}
}
}
if(dp[0]) cout << "Nina\n";
else cout << "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... |