Submission #391800

#TimeUsernameProblemLanguageResultExecution timeMemory
391800ahmetVlak (COCI20_vlak)C++14
70 / 70
17 ms21660 KiB
#include <bits/stdc++.h>
using namespace std;
#define zaman cout<<endl<<fixed<<setprecision(2)<<1000.0 * clock() / CLOCKS_PER_SEC<< " milliseconds "
#define rep(i,n) for(long long (i)=0;(i)<(n);++(i))
#define ref(i,a,b) for (long long (i)=(a); (i)<=(b); ++(i))	
#define endl '\n'
#define ll long long
#define pb push_back
#define pii pair<ll,ll>
#define mp make_pair
const int mx=2e5+6;
const string ans[]={"Nina","Emilija"};
struct node{
	int edge[26];
	int last=-1;//0-Nina 1-Emilija
}trie[mx];
int no=1;

void trieAdd(string s,int res){// -1-Nothing 0-Nina 1-Emilija 2-both
	int curr=1;
	for(int i=0;i<s.size();++i){
		int ch=s[i]-'a';
		if(trie[curr].edge[ch]==0)
			trie[curr].edge[ch]=++no;
		curr=trie[curr].edge[ch];
	}
	if(trie[curr].last>-1 and trie[curr].last!=res)trie[curr].last=2;
	else trie[curr].last=res;
}
int solve(int node,int x){// x:0 Nina     x:1 Emilija  x:2 Both

	for(int i=0;i<26;++i){
		if(trie[node].edge[i]==0)continue;
		int res=solve(trie[node].edge[i],1-x);
		if(res==2)return x;
		if(res==x)return x;
	}
	if(trie[node].last==2)return 1-x;	
	if(trie[node].last>-1)return trie[node].last;
	return 1-x;
}
int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);
	int x,y;cin >> x;
	rep(i,x){
		string s;cin >> s;
		trieAdd(s,0);
	}
	cin >> y;
	rep(i,y){
		string s;cin >> s;
		trieAdd(s,1);
	}
	cout << ans[solve(1,0)] << endl;
}	

	

Compilation message (stderr)

Main.cpp: In function 'void trieAdd(std::string, int)':
Main.cpp:21:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  for(int i=0;i<s.size();++i){
      |              ~^~~~~~~~~
Main.cpp: In function 'int main()':
Main.cpp:4:32: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
    4 | #define rep(i,n) for(long long (i)=0;(i)<(n);++(i))
      |                                ^
Main.cpp:45:2: note: in expansion of macro 'rep'
   45 |  rep(i,x){
      |  ^~~
Main.cpp:4:32: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
    4 | #define rep(i,n) for(long long (i)=0;(i)<(n);++(i))
      |                                ^
Main.cpp:50:2: note: in expansion of macro 'rep'
   50 |  rep(i,y){
      |  ^~~
#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...