Submission #1167631

#TimeUsernameProblemLanguageResultExecution timeMemory
1167631maanayush_17Vlak (COCI20_vlak)C++20
50 / 70
13 ms12872 KiB
#include <bits/stdc++.h> using namespace std; struct TrieNode { bool is_end = false; map<char, TrieNode*> children; }; class Trie { public: TrieNode* root; Trie() { root = new TrieNode(); } void insert(const string &word) { TrieNode* node = root; for (char c : word) { if (!node->children.count(c)) { node->children[c] = new TrieNode(); } node = node->children[c]; } node->is_end = true; } }; bool isWinning(TrieNode* node) { bool canMove = false, hasLosingChild = false; for (auto &child : node->children) { canMove = true; if (!isWinning(child.second)) { hasLosingChild = true; } } return canMove && hasLosingChild; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n; Trie ninaTrie, emilijaTrie; for (int i = 0; i < n; i++) { string word; cin >> word; ninaTrie.insert(word); } cin >> m; for (int i = 0; i < m; i++) { string word; cin >> word; emilijaTrie.insert(word); } bool ninaWins = isWinning(ninaTrie.root); cout << (ninaWins ? "Nina" : "Emilija") << endl; 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...