Submission #1171552

#TimeUsernameProblemLanguageResultExecution timeMemory
1171552HanksburgerVlak (COCI20_vlak)C++20
70 / 70
22 ms31556 KiB
#include <bits/stdc++.h>
using namespace std;
pair<int, int> adj[200005][26];
string str[2][200005];
int n[2], cnt;
pair<int, int> dfs(int u)
{
    pair<int, int> ans={0, 0};
    for (int i=0; i<26; i++)
    {
        int v=adj[u][i].first, w=adj[u][i].second;
        if (!v)
            continue;
        pair<int, int> res=dfs(v);
        ans.first|=(w&1 && !res.second);
        ans.second|=(w&2 && !res.first);
    }
    return ans;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    for (int i=0; i<2; i++)
    {
        cin >> n[i];
        for (int j=0; j<n[i]; j++)
        {
            cin >> str[i][j];
            int cur=0;
            for (int k=0; k<str[i][j].size(); k++)
            {
                int x=str[i][j][k]-'a';
                if (!adj[cur][x].first)
                    adj[cur][x].first=++cnt;
                adj[cur][x].second|=1<<i;
                cur=adj[cur][x].first;
            }
        }
    }
    cout << (dfs(0).first?"Nina":"Emilija");
}
#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...