Submission #542025

#TimeUsernameProblemLanguageResultExecution timeMemory
542025AlperenTVlak (COCI20_vlak)C++17
70 / 70
30 ms20372 KiB
#include <bits/stdc++.h> using namespace std; int n, m; string str; struct Trie{ struct TrieNode{ char color, winner; TrieNode* edge[26]; TrieNode(){ color = winner = '.'; fill(edge, edge + 26, nullptr); } }; TrieNode *root; void add(TrieNode *&v, string &str, char c, int indx = 0){ if(!v) v = new TrieNode(); if(indx == str.size()){ if(v->color == '.') v->color = c; else if(v->color != c) v->color = 'C'; } else{ add(v->edge[str[indx] - 'a'], str, c, indx + 1); } } void dfs(TrieNode *&v, int p){ if(!v) return; bool issame = false; for(int e = 0; e < 26; e++){ if(v->edge[e]){ dfs(v->edge[e], p == 'A' ? 'B' : 'A'); if((v->edge[e]->color == p || v->edge[e]->color == 'C') && v->edge[e]->winner == p) issame = true; if(v->edge[e]->color == 'A'){ if(v->color == 'B') v->color = 'C'; else if(v->color == '.') v->color = 'A'; } else if(v->edge[e]->color == 'B'){ if(v->color == 'A') v->color = 'C'; else if(v->color == '.') v->color = 'B'; } else if(v->edge[e]->color == 'C'){ v->color = 'C'; } } } v->winner = issame ? p : (p == 'A' ? 'B' : 'A'); } }; Trie trie; int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL); cin >> n; while(n--){ cin >> str; trie.add(trie.root, str, 'A'); } cin >> m; while(m--){ cin >> str; trie.add(trie.root, str, 'B'); } trie.dfs(trie.root, 'A'); if(trie.root->winner == 'A') cout << "Nina"; else cout << "Emilija"; }

Compilation message (stderr)

Main.cpp: In member function 'void Trie::add(Trie::TrieNode*&, std::string&, char, int)':
Main.cpp:26:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |         if(indx == str.size()){
      |            ~~~~~^~~~~~~~~~~~~
#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...