Submission #974320

#TimeUsernameProblemLanguageResultExecution timeMemory
974320PieArmyVlak (COCI20_vlak)C++17
70 / 70
9 ms9820 KiB
#pragma GCC optimize("O3,fast-math,unroll-all-loops")
#include <bits/stdc++.h>
using namespace std;

int trie[200001][26];
bool var[2][200001];
int las=1;

void ekle(string word,bool player){
    int pos=0;
    for(char c:word){
        if(!trie[pos][c-'a']){
            trie[pos][c-'a']=las++;
        }
        pos=trie[pos][c-'a'];
        var[player][pos]=true;
    }
}

bool dfs(int pos,bool sira){
    if(pos&&!var[sira][pos])return !sira;
    for(int i=0;i<26;i++){
        if(!trie[pos][i])continue;
        if(!var[sira][trie[pos][i]])continue;
        if(dfs(trie[pos][i],sira^1)==sira)return sira;
    }
    return !sira;
}

int main(){
	ios_base::sync_with_stdio(false);cin.tie(NULL);
	int n;cin>>n;
    for(int i=0;i<n;i++){
        string s;cin>>s;
        ekle(s,0);
    }
    cin>>n;
    for(int i=0;i<n;i++){
        string s;cin>>s;
        ekle(s,1);
    }
    if(dfs(0,0))cout<<"Emilija";
    else cout<<"Nina";
}
#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...