제출 #515686

#제출 시각아이디문제언어결과실행 시간메모리
515686mhsi2005Vlak (COCI20_vlak)C++17
70 / 70
70 ms85948 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const int maxn = 2e5 + 10;

ll n, m, trie[maxn][30][4], nodes = 1;

void add (string &s, int a)
{
    int v = 0;
    for(int i = 0; i < s.size(); i++) {
        if (!trie[v][s[i] - 'a'][0]) trie[v][s[i] - 'a'][0] = nodes++;
        trie[v][s[i] - 'a'][a] = 1;
        v = trie[v][s[i] - 'a'][0];
    }
}

int winner (int v, int a)
{
    bool res = false;
    for (int x = 0; x < 27; x++) {
        if (!trie[v][x][a]) continue;
        if (!trie[v][x][3 - a]) res = true;
        else res |= (winner(trie[v][x][0], 3 - a) == a);
    }
    return (res ? a : 3 - a);
}

int main() {
    cin >> n;
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        add(s, 1);
    }

    cin >> m;
    for (int i = 0; i < m; i++) {
        string s;
        cin >> s;
        add(s, 2);
    }

    cout << (winner(0, 1) == 1 ? "Nina\n" : "Emilija\n");
}

컴파일 시 표준 에러 (stderr) 메시지

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