제출 #1302506

#제출 시각아이디문제언어결과실행 시간메모리
1302506binhbg0201Vlak (COCI20_vlak)C++20
0 / 70
15 ms20856 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define ld long double
#define endl "\n"
#define TASK ""
#define II pair<int,int>
#define fi first
#define se second

#define MASK(i) (1 << (i))
#define BIT(i,x) (((x) >> (i)) & 1)

int MOD = 1e9 + 7;
int const N = 1e6 + 7;
struct node{
	node * child[26];
	int exits[3];
	node(){
		for(int i = 0;i < 26;i++) child[i] = NULL;
		exits[1] = exits[0] = 0;
	}
};
node * root = new node();
struct Trie{
	void insert(string s,int i){
		node *p = root;
		for(auto f : s){
			int c = f - 'a';
			if(p -> child[c] == NULL) p -> child[c] = new node();
			p = p -> child[c];
			p -> exits[i] = 1;
		}
	}
	
}T;

void dfs(node *p,int h){
		int curs = h & 1;
		int s = (h + 1) & 1;
		if(p != root){
			if(p -> exits[curs] == 0){
				return;
			}
			if(curs && p -> exits[s] == 0){
				cout<<"Nina"<<endl;
			}
		}
		for(int i = 0;i < 26;i++){
			if(p -> child[i] == NULL) continue;
			dfs(p -> child[i],h + 1);
		}
	}

void solve(){
	int n;cin>>n;
	for(int i = 1;i <= n;i++){
		string s;cin>>s;
		T.insert(s,0);
	}
//	cout<<"hi"<<endl;
	int m;cin>>m;
	for(int i = 1;i <= m;i++){
		string s;cin>>s;
		T.insert(s,1);
	}
	dfs(root,0);
	cout<<"Emilija";
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);cout.tie(NULL);
//	freopen(TASK".INP","r",stdin);
//	freopen(TASK".OUT","w",stdout);
	solve();
	return 0;
}
//be

#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...