Submission #689440

#TimeUsernameProblemLanguageResultExecution timeMemory
689440MONVlak (COCI20_vlak)C++14
70 / 70
26 ms20388 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;

struct Trie
{
    bool e[2]; bool dp; int depth = 0;
    Trie *next[26];
    void baga(string &s,int p,int c)
    {
        e[c] = 1;
        if(p == s.size()) return;
        if(!next[s[p] - 'a'])
            {
                next[s[p] - 'a'] = new Trie;
                next[s[p] - 'a']->depth = depth + 1;
            }

        next[s[p] - 'a']->baga(s,p + 1,c);
    }

    void din()
    {
        if(e[0] != e[1])
            {
                dp = e[0];
                return;
            }

         for(int l = 0 ; l < 26 ; l++)
            {
                if(!next[l]) continue;
                next[l]->din();
            }

        if(depth & 1)
            {
                for(int l = 0 ; l < 26 ; l++)
                {
                    if(!next[l]) continue;
                    if(!next[l]->dp)
                        {
                            dp = 0;
                            return;
                        }
                }

                dp = 1;
            }

        else
            {
                for(int l = 0 ; l < 26 ; l++)
                {
                    if(!next[l]) continue;
                    if(next[l]->dp)
                        {
                            dp = 1;
                            return;
                        }
                }

                dp = 0;
            }
    }
};


int main()
{
    int n,m;
    cin >> n ; string s;
    Trie *trie = new Trie;
    while(n--)
        {
            cin >> s;
            trie->baga(s,0,0);
        }

    cin >> m;
    while(m--)
        {
            cin >> s;
            trie->baga(s,0,1);
        }

    trie->din();
    string ans = trie->dp ? "Nina" : "Emilija";
    cout << ans;
}

Compilation message (stderr)

Main.cpp: In member function 'void Trie::baga(std::string&, int, int)':
Main.cpp:14:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |         if(p == s.size()) return;
      |            ~~^~~~~~~~~~~
#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...