Submission #1318718

#TimeUsernameProblemLanguageResultExecution timeMemory
1318718liminhaVlak (COCI20_vlak)C++20
70 / 70
41 ms55228 KiB
#include <bits/stdc++.h> using namespace std; #define __ ios::sync_with_stdio(0); cin.tie(NULL); #define pb push_back #define int long long #define rep(i,n) for(int i=0;i<n;i++) #define all(x) x.begin(),x.end() const int mxn = 5010; const int mxw = 2e5+10; const int INF = 1e18; const int mod = 1e9+7; vector<vector<int>> trie(mxw,vector<int>(26)); int cnt = 0; vector<int> stop(mxw); vector<int> longest(mxw); vector<int> nina(mxw); vector<int> emi(mxw); void insert(string s,int v){ int node = 0; for(char c : s){ if(trie[node][c-'a'] == 0) { trie[node][c-'a'] = ++cnt; } node = trie[node][c-'a']; if(v==1) nina[node] = 1; if(v==2) emi[node] = 1; } stop[node] = 1; } int win = 0; bool dfs(int s,int r){ for(int i=0;i<26;i++){ int v = trie[s][i]; if(trie[s][i]) { int valid = (r==0 ? nina[v] : emi[v]); if(valid){ if(!dfs(v,1-r)){ return true; } } } } return false; } void solve(){ int n; cin >> n; int mx = 0; rep(i,n){ string s; cin >> s; insert(s,1); } int m; cin >> m; rep(i,m){ string s; cin >> s; insert(s,2); } cout << (dfs(0,0) == 1 ? "Nina" : "Emilija") << endl; // cout << nina[4] << endl; // cout << trie[0][1] << endl; } signed main(){ __ int T = 1; // cin >> T; while(T--){ solve(); } return 0; }
#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...