Submission #1153980

#TimeUsernameProblemLanguageResultExecution timeMemory
1153980dzuizzVlak (COCI20_vlak)C++20
20 / 70
2 ms584 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node{
  node* v[26];
  string p;
  char c;
  bool k;
  node(string _p, bool _k): p(_p), k(_k) {}
  void add(string s,int i){
    if(i==s.size()) return;
    if(!v[s[i]-'a'])
      v[s[i]-'a']=new node(p+s.back(),k^1);
    v[s[i]-'a']->add(s,i+1);
  }
  bool qry(){
    for(auto&nx:v) if(nx&&nx->qry()==k^1)
      return k^1;
    return k;
  }
} *root;
signed main(){
  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  int n; cin>>n;
  root=new node("",1);
  for(int i=0;i<n;++i){
    string s,r=""; cin>>s;
    for(int i=0;i<(int)s.size();++i){
      r+=s[i];
      if(i&1^1) root->add(r,0);
    }
  }
  int m; cin>>m;
  for(int i=0;i<m;++i){
    string s,r=""; cin>>s;
    for(int i=0;i<(int)s.size();++i){
      r+=s[i];
      if(i&1) root->add(r,0);
    }
  }
  cout<<(root->qry()?"Emilija\n":"Nina\n");
  return 0;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...