Submission #1173438

#TimeUsernameProblemLanguageResultExecution timeMemory
1173438InvMODVlak (COCI20_vlak)C++20
10 / 70
18 ms19268 KiB
#include<bits/stdc++.h> using namespace std; const int C = 26; struct Trie{ struct Node{ Node* child[C]; bool Nina, Emil; Node(): Nina(false), Emil(false){ for(int i = 0; i < C; i++){ child[i] = nullptr; } } }; typedef Node* pNode; pNode root; Trie(){ root = new Node(); } void addStr(const string& s, bool who){ pNode cur = root; for(char c : s){ int v = c - 'a'; if(cur->child[v] == nullptr){ cur->child[v] = new Node(); } cur = cur->child[v]; } if(!who){ cur->Nina = true; } else cur->Emil = true; return; } int tinDFS = 0; void check(pNode x, int who){ int curDFS; for(int i = 0; i < C; i++){ if(x->child[i] != nullptr){ pNode v = x->child[i]; check(v, 3 - who); if(who == 1){ if(v->Nina){ x->Nina = true; x->Emil = false; } else{ x->Emil = true; } } else{ if(v->Emil){ x->Emil = true; x->Nina = false; } else{ x->Nina = true; } } } } } string Winner(){ check(root, 1); if(root->Nina == 1) return "Nina"; return "Emilija"; } }; void solve() { int n; cin >> n; Trie trie; for(int i = 1; i <= n; i++){ string s; cin >> s; trie.addStr(s, 0); } int m; cin >> m; for(int i = 1; i <= m; i++){ string s; cin >> s; trie.addStr(s, 1); } cout << trie.Winner() << "\n"; } int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define name "InvMOD" if(fopen(name".INP", "r")){ freopen(name".INP", "r", stdin); freopen(name".OUT", "w", stdout); } solve(); return 0; }

Compilation message (stderr)

Main.cpp: In function 'int32_t main()':
Main.cpp:104:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  104 |         freopen(name".INP", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:105:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  105 |         freopen(name".OUT", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#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...