#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_map>
#include <unordered_set>
#define ll long long
#define ld long double
#define pl pair<ll, ll>
#define vi vector<long long>
#define vii vector<vi>
#define vc vector<char>
#define vcc vector<vc>
#define vp vector<pl>
#define mi map<ll,ll>
#define mc map<char,int>
#define sortx(X) sort(X.begin(),X.end());
#define all(X) X.begin(),X.end()
#define allr(X) X.rbegin(),X.rend()
#define ln '\n'
#define YES {cout << "YES\n"; return;}
#define NO {cout << "NO\n"; return;}
#define MUN {cout << "-1\n"; return;}
using namespace std;
class Trie
{
public:
struct trie_node
{
ll val[2];
int next[26];
trie_node() {
val[0] = val[1] = 0;
memset(next, -1, sizeof(next));
}
};
ll get() {return (get(0, 0));}
void add(string &s, ll p) {add(0, s, p, 0);}
Trie() {tree.resize(1, trie_node());}
private:
vector<trie_node> tree;
ll get(ll m, ll p) {
if (m == -1) return 1;
if (!tree[m].val[p]) return 0;
for (int i = 0; i < 26; i++)
{
if (get(tree[m].next[i],p^1) == 0) return 1;
}
return 0;
}
void add(ll m, string &s, ll p, ll idx) {
if (!s[idx]) {
return;
}
int nxt = s[idx] - 'a';
if (tree[m].next[nxt] == -1) {
tree[m].next[nxt] = tree.size();
tree.push_back(trie_node());
}
tree[m].val[p] = 1;
add(tree[m].next[nxt], s, p,idx + 1);
}
};
const int MODE = 1e9+7;
void solve(int tc) {
ll n;
cin >> n;
Trie tr;
while (n--)
{
string s; cin >> s;
tr.add(s, 0);
}
ll m; cin >> m;
while (m--)
{
string s; cin >> s;
tr.add(s, 1);
}
if (tr.get()) cout << "Nina\n";
else cout << "Emilija\n";
}
signed main()
{
ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int size = 1;
// freopen("dec.in", "r", stdin);
// freopen("dec.out", "w", stdout);
// cin >> size;
for (int i = 1; i <= size; i++)
solve(i);
}
# | 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... |