Submission #1172916

#TimeUsernameProblemLanguageResultExecution timeMemory
1172916WarinchaiVlak (COCI20_vlak)C++20
70 / 70
19 ms24648 KiB
#include<bits/stdc++.h> using namespace std; vector<string>a; vector<string>b; struct node{ node* next[30]; int nhas,nwin,ehas,ewin; node(){ for(int i=0;i<30;i++)next[i]=NULL; nhas=nwin=ehas=ewin=0; } }; typedef node* pnode; pnode rt=new node(); void dfs(pnode u){ int ewin=0; int nwin=0; //cerr<<u<<"\n"; for(int i=0;i<26;i++)if(u->next[i]){ //cerr<<"child:"<<u<<" "<<i<<" "<<u->next[i]<<"\n"; dfs(u->next[i]); if((u->next[i]->nhas)&&(u->next[i]->ewin==0))nwin=1; if((u->next[i]->ehas)&&(u->next[i]->nwin==0))ewin=1; } u->ewin=ewin,u->nwin=nwin; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n;cin>>n; for(int i=0;i<n;i++){ string s;cin>>s; pnode cur=rt; for(auto x:s){ int id=(x-'a'); if(!cur->next[id])cur->next[id]=new node(); cur=cur->next[id]; cur->nhas=1; } } int m;cin>>m; for(int i=0;i<m;i++){ string s;cin>>s; pnode cur=rt; for(auto x:s){ int id=(x-'a'); if(!cur->next[id])cur->next[id]=new node(); cur=cur->next[id]; cur->ehas=1; } } dfs(rt); if(rt->nwin)cout<<"Nina\n"; else cout<<"Emilija\n"; }
#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...