Submission #725064

#TimeUsernameProblemLanguageResultExecution timeMemory
725064TsiannisVlak (COCI20_vlak)C++17
70 / 70
54 ms88160 KiB
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define INF 100000000007
    #define maxn 200005
    #define maxm 28
    ll T1[maxn][maxm];
    ll T2[maxn][maxm];
    bool solve(ll nodeN, ll nodeE, bool turn){
        if (turn==1&&nodeE==-1)
            return 0;
        if (turn==0&&nodeN==-1)
            return 0;
        if (!turn){
            bool maxi=0;
            for (char i='a';i<='z';i++){
                if (T1[nodeN][i-'a']!=-1){
                    maxi=max(maxi,!solve(T1[nodeN][i-'a'],T2[nodeE][i-'a'],1));
                }
            }
            return maxi;
        }
        else{
            bool maxi=0;
            for (char i='a';i<='z';i++){
                if (T2[nodeE][i-'a']!=-1){
                     maxi=max(maxi,!solve(T1[nodeN][i-'a'],T2[nodeE][i-'a'],0));
                }
            }
            return maxi;
        }
    }
    int main()
    {
        memset(T1,-1,sizeof(T1));
        memset(T2,-1,sizeof(T2));
        ll n; cin>>n;
        ll next=1;
        while(n--){
                string s; cin>>s;
                ll i=0,v=0;
                while(i<s.size()){
                    if (T1[v][s[i]-'a']==-1){
                        T1[v][s[i]-'a']=next;
                        v=next;
                        next++;
                    }
                    else
                    {
                        v=T1[v][s[i]-'a'];
                    }
                    ++i;
                }
        }
        next=1; cin>>n;
        while(n--){
                string s; cin>>s;
                ll i=0,v=0;
                while(i<s.size()){
                    if (T2[v][s[i]-'a']==-1){
                        T2[v][s[i]-'a']=next;
                        v=next;
                        next++;
                    }
                    else
                    {
                        v=T2[v][s[i]-'a'];
                    }
                    ++i;
                }
        }
        bool ans=solve(0,0,0);
        if (ans)
            cout<<"Nina"<<endl;
        else    
            cout<<"Emilija"<<endl;
        return 0;
    }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:42:24: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |                 while(i<s.size()){
      |                       ~^~~~~~~~~
Main.cpp:59:24: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |                 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...