Submission #445951

#TimeUsernameProblemLanguageResultExecution timeMemory
445951JasiekstrzVlak (COCI20_vlak)C++17
70 / 70
27 ms14380 KiB
#include<bits/stdc++.h> #define fi first #define se second using namespace std; const int N=2e5; int k=1; map<char,int> e[N+10]; bool ok[N+10][2]; void add(int x,string::iterator bg,string::iterator en,bool c) { ok[x][c]=true; if(bg==en) return; if(e[x].find(*bg)==e[x].end()) e[x][*bg]=++k; add(e[x][*bg],bg+1,en,c); return; } bool dfs(int x,bool t) { if(!ok[x][0]) return 1; if(!ok[x][1]) return 0; if(e[x].empty()) return !t; bool vis[2]={0,0}; for(auto [c,v]:e[x]) vis[dfs(v,!t)]=true; if(!vis[0]) return 1; if(!vis[1]) return 0; return t; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,m; cin>>n; for(int i=1;i<=n;i++) { string s; cin>>s; add(1,s.begin(),s.end(),0); } cin>>m; for(int i=1;i<=m;i++) { string s; cin>>s; add(1,s.begin(),s.end(),1); } cout<<(!dfs(1,0) ? "Nina":"Emilija")<<"\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...