제출 #1173449

#제출 시각아이디문제언어결과실행 시간메모리
1173449InvMODVlak (COCI20_vlak)C++20
70 / 70
19 ms20292 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; bool Nina = false, Emil = false; for(int i = 0; i < C; i++){ if(x->child[i] != nullptr){ pNode v = x->child[i]; check(v, 3 - who); Nina = Nina | v->Nina; Emil = Emil | v->Emil; } } // choose who will win if(who == 1){ if(Nina) x->Nina = true, x->Emil = false; else if(Emil) x->Emil = true, x->Nina = false; } else{ if(Emil) x->Emil = true, x->Nina = false; else if(Nina) x->Nina = true, x->Emil = false; } } 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; }

컴파일 시 표준 에러 (stderr) 메시지

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