# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1180063 | sasde | Vlak (COCI20_vlak) | C++20 | 18 ms | 19272 KiB |
#include<bits/stdc++.h>
using namespace std;
const int C = 26;
struct Trie{
struct Node{
Node* child[C];
bool Nina, Emil;
Node(): Nina(false), Emil(false){
for(int i = 0; i < C; i++){
child[i] = nullptr;
}
}
};
typedef Node* pNode;
pNode root;
Trie(){
root = new Node();
}
void addStr(const string& s, bool who){
pNode cur = root;
for(char c : s){
int v = c - 'a';
if(cur->child[v] == nullptr){
cur->child[v] = new Node();
}
cur = cur->child[v];
}
if(!who){
cur->Nina = true;
}
else cur->Emil = true;
return;
}
int tinDFS = 0;
void check(pNode x){
int curDFS;
bool Nina = false, Emil = false;
for(int i = 0; i < C; i++){
if(x->child[i] != nullptr){
pNode v = x->child[i];
check(v);
Nina = Nina | v->Nina;
Emil = Emil | v->Emil;
}
}
// choose who will win
if(Nina) x->Nina = true, x->Emil = false;
else if(Emil) x->Emil = true, x->Nina = false;
}
string Winner(){
check(root);
if(root->Nina == 1) return "Nina";
return "Emilija";
}
};
void solve()
{
int n; cin >> n;
Trie trie;
for(int i = 1; i <= n; i++){
string s; cin >> s;
trie.addStr(s, 0);
}
int m; cin >> m;
for(int i = 1; i <= m; i++){
string s; cin >> s;
trie.addStr(s, 1);
}
cout << trie.Winner() << "\n";
}
int32_t main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
#define name "InvMOD"
if(fopen(name".INP", "r")){
freopen(name".INP", "r", stdin);
freopen(name".OUT", "w", stdout);
}
solve();
return 0;
}
Compilation message (stderr)
# | 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... |