Submission #863004

#TimeUsernameProblemLanguageResultExecution timeMemory
863004duckindogVlak (COCI20_vlak)C++14
70 / 70
31 ms113500 KiB
// from duckindog wth depression #include<bits/stdc++.h> using namespace std; const int N = 8 * (2e5 + 10); string a[N], b[N]; int nwt[N][27]; int st[N]; int it, bit; void add(string x, int y) { int g = 0; for (auto ch : x) { st[g] |= y; int w = ch - 'a' + 1; if (!nwt[g][w]) nwt[g][w] = ++it; g = nwt[g][w]; } st[g] |= y; return; } void dfs(int g = 0) { for (int i = 0; i <= 26; ++i) { if (!nwt[g][i]) continue; char ni = !i ? '0' : char(i + 'a' - 1); cout << g << " " << nwt[g][i] << " " << ni << "\n"; dfs(nwt[g][i]); } return; } bool check(int g = 0, bool y = 0) { bool w = 0; for (int i = 1; i <= 26; ++i) { bool ny = 1 - y; bool trapdoor = 0; int v = nwt[g][i]; if (ny && st[v] % 2 == 1) trapdoor = 1; if (!ny && st[v] >= 2) trapdoor = 1; if (!v || !trapdoor) continue; w = 1; if (!y && check(v, ny)) return 1; if (y && !check(v, ny)) return 0; } return y; } int32_t main() { cin.tie(0)->sync_with_stdio(0); if (fopen("duck.inp", "r")) { freopen("duck.inp", "r", stdin); freopen("duck.out", "w", stdout); } int n; cin >> n; for (int i = 1; i <= n; ++i) cin >> a[i], bit = max(bit, int(a[i].size())); int m; cin >> m; for (int i = 1; i <= m; ++i) cin >> b[i], bit = max(bit, int(b[i].size())); for (int i = 1; i <= n; ++i) add(a[i], 1); for (int i = 1; i <= m; ++i) add(b[i], 2); cout << (check() ? "Nina" : "Emilija"); }

Compilation message (stderr)

Main.cpp: In function 'bool check(int, bool)':
Main.cpp:41:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   41 |     if (!v || !trapdoor) continue; w = 1;
      |     ^~
Main.cpp:41:36: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   41 |     if (!v || !trapdoor) continue; w = 1;
      |                                    ^
Main.cpp:34:8: warning: variable 'w' set but not used [-Wunused-but-set-variable]
   34 |   bool w = 0;
      |        ^
Main.cpp: In function 'int32_t main()':
Main.cpp:52:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |     freopen("duck.inp", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:53:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |     freopen("duck.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...