#include<bits/stdc++.h>
using namespace std;
vector<string> N, E;
int commonPrefixLen(const string&a, const string&b) {
int p1 = 0, p2 = 0;
int ans = 0;
while (p1 < a.size() && p2 < b.size()) {
if (a[p1] == b[p2]) ans++;
else break;
p1++, p2++;
}
return ans;
}
bool getResult(const string&a, const string&b) { // 1 for N, 0 for E
int L = commonPrefixLen(a, b);
if (L % 2 == 1) {
return (b.size()==L);
}
else {
return !(a.size()==L);
}
}
bool getGameScore(const string&s, const vector<string>& other) {
// get game score for Nina's string s
bool found_prefix = false;
for (auto& t : other) {
// int c = commonPrefixLen(s, t);
// if (c == 0) {
// if (found_prefix) break; // no more prefix match will be found
// else continue; // haven't found prefix yet
// }
// else {
// found_prefix = true;
// }
bool r = getResult(s, t);
if (!r) {
return false;
}
}
return true;
}
int main() {
int n, m;
cin >> n;
for (int i = 0; i < n; i++) {
string x; cin >> x; N.push_back(x);
}
cin >> m;
for (int i = 0; i < m; i++) {
string x; cin >> x; E.push_back(x);
}
// vector<bool> Nwin(n, true), Ewin(m, true);
sort(N.begin(), N.end());
sort(E.begin(), E.end());
bool winner = false;
for (int i = 0; i < n; i++) {
const string& s = N[i];
bool score = getGameScore(s, E);
if (score) {
winner = true;
}
}
// if (winner == false) {
// bool winnerE = false;
// for (int i = 0; i < m; i++) {
// const string& s = E[i];
// bool score = getGameScore(s, N);
// if (score == 0) {
// winnerE = true;
// }
// }
// winner = !winnerE;
// }
// // check if N wins
// bool winner = true;
// if (E.size()==0) {
// }
// else {
// for (bool b : Nwin) {
// if (!b) winner = false;
// }
// }
cout << (winner ? "Nina" : "Emilija") << endl;
}
# | 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... |