Submission #1305828

#TimeUsernameProblemLanguageResultExecution timeMemory
1305828gkbsVlak (COCI20_vlak)C++20
70 / 70
14 ms22516 KiB
#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define EB emplace_back
#define MP make_pair
#define all(o) (o).begin(), (o).end()
#define mset(m,v) memset(m,v,sizeof(m))
#define fr(i,n) for(ll i=0;i<n;++i)
#define endl '\n' 
#define pii pair<int,int>
#define vi vector<int>
#define vvi vector<vi>

using ll = long long;
using ld = long double;
const int MOD = 1e9+7;
const int INF = 1e9;
const ld EPS = 1e-9;

template <class A, class B> ostream& operator << (ostream& out, const pair<A, B> &a) {
    return out << "(" << a.x << ", " << a.y << ")";
}

template <class A> ostream& operator << (ostream& out, const vector<A> &v) {
    out << "[";
    fr(i, sz(v)) {
        if(i) out << ", ";
        out << v[i];
    }
    return out << "]";
}
struct node{
    int cnt=0;
    node *child[26];
    node(){
        for(int i=0;i<26;i++)child[i]=NULL;
    }
};
struct trie{
    node *t;
    trie(){t=new node;}
    void insert(string s){
        node *curr = t;
        for(int i=0;i<s.length();i++){
            curr->cnt++;
            int x=s[i]-'a';
            if(curr->child[x]==NULL)curr->child[x]=new node;
            curr = curr->child[x];
        }
        curr->cnt++;
    }
};
bool query(node *curr1,node *curr2){
    bool ans=true;
    for(int i=0;i<26;i++){
        if(curr1->child[i]){
            if(curr2->child[i]==NULL)return true;
            else{
                ans = ans && query(curr2->child[i],curr1->child[i]);
            }
        }
    }
    return !ans;
}
void solve(){
    int n,m;cin>>n;
    trie tn,te;
    for(int i=0;i<n;i++){
        string s;cin>>s;
        tn.insert(s);
    }
    cin>>m;
    for(int i=0;i<m;i++){
        string s;cin>>s;
        te.insert(s);
    }
    bool win = query(tn.t,te.t);
    if(win)cout<<"Nina"<<endl;
    else cout<<"Emilija"<<endl;
}
 
int main()
{
    cin.tie(0);cin.sync_with_stdio(0);
    cout.tie(0);cout.sync_with_stdio(0);
    int t = 1;
    // cin >> t;
    while (t--)solve();
    
    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...