Submission #317794

#TimeUsernameProblemLanguageResultExecution timeMemory
317794mohamedsobhi777Crayfish scrivener (IOI12_scrivener)C++14
34 / 100
1061 ms73824 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 1e6 + 7;
char last;
void Init() {}

int cnt, cur = 0;
int trie[N][27];
vector<int> hist = {0};
int prv[N];
int chs[N];
int val[N];

void TypeLetter(char L)
{
        L -= 'a';
        trie[cur][L] = ++cnt;
        hist.push_back(cnt);
        prv[cnt] = cur;
        val[cnt] = val[cur] + 1;
        chs[cnt] = L;
        cur = cnt;
}

void UndoCommands(int U)
{
        cur = hist[hist.size() - U - 1];
        hist.push_back(cur);
}

char GetLetter(int P)
{
        P++;
        int now = cur;
        while (val[now] > P)
                now = prv[now];
        return char(chs[now] + 'a');
}

Compilation message (stderr)

scrivener.cpp: In function 'void TypeLetter(char)':
scrivener.cpp:19:19: warning: array subscript has type 'char' [-Wchar-subscripts]
   19 |         trie[cur][L] = ++cnt;
      |                   ^
#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...