Submission #983371

#TimeUsernameProblemLanguageResultExecution timeMemory
983371roctes7Vlak (COCI20_vlak)C++17
70 / 70
13 ms38488 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define fastio \ ios_base::sync_with_stdio(false); \ cin.tie(NULL); const double eps = 1e-6; const int MAX = 3e5+3; int adj[MAX][30]; int num[2][MAX]; int nex = 1; int n; void init(){ memset(adj,-1,sizeof adj); } void add(string s,int turn){ int i = 0, v = 0; while(i < s.size()){ if(adj[v][s[i]-'a'] == -1) v = adj[v][s[i++]-'a'] = nex++; else v = adj[v][s[i++]-'a']; } num[turn][v]++; } void dfs(int x){ for(char c='a';c<='z';c++){ if(adj[x][c-'a']!=-1){ dfs(adj[x][c-'a']); num[0][x]+=num[0][adj[x][c-'a']]; num[1][x]+=num[1][adj[x][c-'a']]; } } } bool dp(int x,int turn){ bool res = false; for(char c='a';c<='z';c++)if(adj[x][c-'a']!=-1){ if(num[turn][adj[x][c-'a']]>0){ res |= (!(dp(adj[x][c-'a'],(turn+1)%2))); } } return res; } int main(){ fastio; //freopen("output.txt","w",stdout); init(); int n; cin>>n; for(int i=0;i<n;i++){ string s; cin>>s; add(s,0); } int m; cin>>m; for(int i=0;i<m;i++){ string s; cin>>s; add(s,1); } dfs(0); cout<<(dp(0,0)?"Nina":"Emilija")<<endl; return 0; }

Compilation message (stderr)

Main.cpp: In function 'void add(std::string, int)':
Main.cpp:25:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |  while(i < s.size()){
      |        ~~^~~~~~~~~~
#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...