제출 #1138265

#제출 시각아이디문제언어결과실행 시간메모리
1138265spacecowboyVlak (COCI20_vlak)C++20
70 / 70
55 ms13904 KiB
#include <bits/stdc++.h> using namespace std; #define all(v) v.begin(), v.end() #define pb push_back #define fi st #define se nd #define INF INT_MAX/2 typedef long long ll; typedef pair<int,int> pii; typedef vector<int> vi; const int N = 2e5+5; //Number of nodes const int ALPHA = 26; // Number of characters int trie[N][ALPHA]; map<int,int> type; int last_n = 0; void insert(string &s, int from){ int curr_node = 0; for(char it: s){ int &aux = trie[curr_node][it-'a']; if(aux == 0){ aux = ++last_n; } if(type.count(aux)) type[aux] = 2; else type[aux] = from; curr_node = aux; } return; } bool wins(int node, int turn){ int cnt = 0, winner = 0; for(int i=0; i <26; i++){ if(trie[node][i] && type[trie[node][i]] != (!(turn%2))){ cnt++; if(wins(trie[node][i], turn+1)) winner++; } } if(!cnt || cnt == winner) return false; else return true; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n,m; cin >> n ; while(n--){ string word; cin >> word; insert(word,0); } cin >> m; while(m--){ string word; cin >> word; insert(word,1); } if(wins(0,0)) cout << "Nina\n"; else cout << "Emilija\n"; 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...