제출 #1056956

#제출 시각아이디문제언어결과실행 시간메모리
1056956anarch_yVlak (COCI20_vlak)C++17
0 / 70
4 ms8028 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define all(x) begin(x), end(x) #define sz(x) (int)x.size() #define pb push_back const int mod = 1e9+7; struct Trie{ static const int wmax = 2e6; int trie[wmax][26]; bool stop[wmax]; int num; void insert(string x){ int cur = 0; for(auto t: x){ int c = t - 'a'; if(trie[cur][c] == 0){ trie[cur][c] = ++num; } cur = trie[cur][c]; } stop[cur] = true; } pair<int, int> check(string x){ int cur = 0; int ans = 0; for(auto t: x){ int c = t - 'a'; if(trie[cur][c] == 0){ if(stop[cur]) return {ans, 1}; else return {ans, 0}; } ans++; cur = trie[cur][c]; } if(stop[cur]) return {ans, 1}; else return {ans, 0}; } }; Trie T; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector<string> v(n); for(int i=0; i<n; i++) cin >> v[i]; int m; cin >> m; vector<string> w(m); for(int i=0; i<m; i++){ cin >> w[i]; T.insert(w[i]); } bool ok = false; for(int i=0; i<n; i++){ auto [ans, b] = T.check(v[i]); if(ans%2 == 0){ if(sz(v[i]) != ans){ ok = true; break; } } else{ if(b == 1){ ok = true; break; } } } if(ok) cout << "Nina"; else cout << "Emilija"; }
#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...