Submission #1263200

#TimeUsernameProblemLanguageResultExecution timeMemory
1263200MegalosaurusVlak (COCI20_vlak)C++20
70 / 70
18 ms21064 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

const int N = 2e5+5;
int trie[N][26], cc[N][2];
int dp[N];
int cnt = 1;
void insert(string s, int type)
{
	int node = 0;
	cc[node][type]++;
	for(auto it:s)
	{
		if(trie[node][it-'a'] == 0) trie[node][it-'a'] = cnt++;
		cc[node][type]++;
		node = trie[node][it-'a'];
	}
}

int solve(int node, int l)
{
	auto &ret = dp[node];
	if(cc[node][l] == 0)
	{
		return 0;
	}
	ret = 0;
	for(int i = 0; i < 26; i++)
	{
		int x = trie[node][i];
		if(x != 0)
		{
			ret |= (solve(x, l^1) == 0);
		}
	}
	return ret;
}

signed main()
{
	int n, m;
	cin >> n;
		string s;
	for(int i = 0; i < n; i++)
	{
		cin >>s;
		insert(s, 0);
	}
	cin >> n;
	for(int i = 0; i < n; i++)
	{
		cin >>s;
		insert(s, 1);
	}
	cout << (solve(0, 0)==1?"Nina":"Emilija");
    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...