Submission #1267067

#TimeUsernameProblemLanguageResultExecution timeMemory
1267067dangheoVlak (COCI20_vlak)C++20
70 / 70
13 ms22340 KiB
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <iomanip> #include <numeric> #include <vector> #include <queue> #include <stack> #include <string> #define hyathu main #define popcorn __builtin_popcount using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; constexpr int mmb = 1e5 + 69, dicSize = 26; const ld pi = atan(1) * 4; /* Xay Trie cho 2 nguoi; Ban dau, ca 2 curleft, curright deu o root. Tai buoc 1: Nina muon thang -> tu curleft, phai nhay xuong cac con, curright cung nhay xuong giong voi chu cai curleft nhay xuong. -> Nina muon biet xem co con nao lm cho Nina thang khong Tai buoc 2: Den luot Emilija, -> Emilija muon thang -> Lam tuong tu nhu tren ... Nhu vay, curleft va curright se o node tuong ung voi xau hien tai o moi Trie. O mot node, neu la luot le, xet curleft, chan thi xet curright. Nguoi choi hien tai thua khi va chi khi: +, Node khong ton tai +, Node khong co con nao (Khong the nhay xuong duoc */ int n; string s; struct Trie{ struct Node{ Node *ch[dicSize]; Node(){ fill(ch, ch + dicSize, nullptr); } }; Node *root = new Node; void insert(string &s){ Node *cur = root; for(char i : s){ int d = i - 'a'; if(cur->ch[d] == nullptr) cur->ch[d] = new Node; cur = cur->ch[d]; } } } Nani, Elimi; void readData(){ cin >> n; while(n--){ cin >> s; Nani.insert(s); } cin >> n; while(n--){ cin >> s; Elimi.insert(s); } } Trie::Node *curl = Nani.root, *curr = Elimi.root; bool getwin(int turn){ Trie::Node *tp; if(turn & 1) tp = curl; else tp = curr; if(tp == nullptr) return true; Trie::Node *prvl = curl, *prvr = curr; for(int i = 0; i <= 'z' - 'a'; ++i){ if(tp->ch[i] == nullptr) continue; curl = curl->ch[i]; curr = curr->ch[i]; bool ok = getwin(turn + 1); curl = prvl; curr = prvr; if(ok) return false; } return true; } void solve(){ cout << (getwin(1) ? "Emilija" : "Nina"); } #define filename "test" int hyathu(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #ifdef dangheo freopen("test.inp", "r", stdin); //freopen("test.out", "w", stdout); #else //freopen(filename".INP", "r", stdin); //freopen(filename".OUT", "w", stdout); #endif readData(); solve(); 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...