제출 #1153971

#제출 시각아이디문제언어결과실행 시간메모리
1153971dzuizzVlak (COCI20_vlak)C++20
60 / 70
40 ms24136 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){
    if(!s.size()) return;
    if(!v[s[0]-'a'])
      v[s[0]-'a']=new node(p+s.back(),k^1);
    v[s[0]-'a']->add(s.substr(1,(int)s.size()-1));
  }
  bool qry(){
    for(auto&nx:v){
      if(!nx) continue;
      if(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; cin>>s;
    string r="";
    for(int i=0;i<(int)s.size();++i){
      r+=s[i];
      if(i&1^1) root->add(r);
    }
  }
  int m; cin>>m;
  for(int i=0;i<m;++i){
    string s; cin>>s;
    string r="";
    for(int i=0;i<(int)s.size();++i){
      r+=s[i];
      if(i&1) root->add(r);
    }
  }
  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...