# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
391800 | 2021-04-19T23:17:19 Z | ahmet | Vlak (COCI20_vlak) | C++14 | 17 ms | 21660 KB |
#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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 21584 KB | Output is correct |
2 | Correct | 10 ms | 21416 KB | Output is correct |
3 | Correct | 10 ms | 21452 KB | Output is correct |
4 | Correct | 10 ms | 21452 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 21452 KB | Output is correct |
2 | Correct | 10 ms | 21452 KB | Output is correct |
3 | Correct | 10 ms | 21412 KB | Output is correct |
4 | Correct | 10 ms | 21460 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 9 ms | 21452 KB | Output is correct |
2 | Correct | 10 ms | 21452 KB | Output is correct |
3 | Correct | 10 ms | 21452 KB | Output is correct |
4 | Correct | 10 ms | 21452 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 21452 KB | Output is correct |
2 | Correct | 10 ms | 21432 KB | Output is correct |
3 | Correct | 10 ms | 21400 KB | Output is correct |
4 | Correct | 10 ms | 21324 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 14 ms | 21580 KB | Output is correct |
2 | Correct | 15 ms | 21580 KB | Output is correct |
3 | Correct | 17 ms | 21660 KB | Output is correct |
4 | Correct | 16 ms | 21660 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 13 ms | 21656 KB | Output is correct |
2 | Correct | 14 ms | 21584 KB | Output is correct |
3 | Correct | 13 ms | 21608 KB | Output is correct |
4 | Correct | 14 ms | 21580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 14 ms | 21580 KB | Output is correct |
2 | Correct | 14 ms | 21572 KB | Output is correct |
3 | Correct | 14 ms | 21584 KB | Output is correct |
4 | Correct | 14 ms | 21596 KB | Output is correct |