#include <iostream>
#include <cstring>
const int LEN = 200'001;
int N, M, dp[LEN];
int idx, g[LEN][26], t[LEN];
char S[LEN];
int dfs(int k, int l) {
int ret = 0;
for (int i = 0; i < 26; ++i) {
if (~g[k][i] && t[g[k][i]] & 1 << l)
ret |= dfs(g[k][i], !l);
}
return ret;
}
int main() {
std::cin.tie(0)->sync_with_stdio(0);
memset(g, -1, sizeof g);
for (int b = 1; b <= 2; ++b) {
std::cin >> N;
for (int i = 0; i < N; ++i) {
std::cin >> S;
for (int j = 0, k = 0, c; S[j]; ++j) {
c = S[j] - 'a';
if (!~g[k][c]) g[k][c] = ++idx;
k = g[k][c];
t[k] |= b;
}
}
}
std::cout << (dfs(0, 0) ? "Nina" : "Emlija");
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
4 ms |
21584 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
4 ms |
21584 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
3 ms |
21584 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
4 ms |
21584 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
7 ms |
21488 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
5 ms |
21584 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
5 ms |
21584 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |