Submission #99774

# Submission time Handle Problem Language Result Execution time Memory
99774 2019-03-07T03:39:50 Z PeppaPig Crayfish scrivener (IOI12_scrivener) C++14
34 / 100
1000 ms 129244 KB
#include <bits/stdc++.h>

using namespace std;

const int N = 1e6+5;

struct node {
    char d;
    int sz;
    node *par[20];
    node() { }
    node(char d) : d(d) { for(int i = 0; i < 20; i++) par[i] = NULL; }
};

int ptr;
node* S[N];

void Init() {
    ptr = 0;
    S[0] = NULL; 
}

void TypeLetter(char L) {
    ++ptr;
    S[ptr] = new node(L);
    S[ptr]->sz = S[ptr-1] ? S[ptr-1]->sz + 1 : 1;
    S[ptr]->par[0] = S[ptr-1];
    for(int i = 1; i < 20; i++) if(S[ptr]->par[i-1])
        S[ptr]->par[i] = S[ptr]->par[i-1]->par[i-1];
}

void UndoCommands(int U) {
    S[++ptr] = S[ptr - U];
}

char GetLetter(int P) {
    int d = S[ptr]->sz - P - 1;
    node* now = S[ptr];
    for(int i = 19; ~i; i--) if(d >> i & 1) now = now->par[i];
    return now->d;
}

Compilation message

scrivener.cpp: In function 'void UndoCommands(int)':
scrivener.cpp:33:7: warning: operation on 'ptr' may be undefined [-Wsequence-point]
     S[++ptr] = S[ptr - U];
       ^~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 256 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 356 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 3 ms 256 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 256 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 640 KB Output is correct
2 Correct 5 ms 640 KB Output is correct
3 Correct 4 ms 640 KB Output is correct
4 Correct 3 ms 896 KB Output is correct
5 Correct 4 ms 740 KB Output is correct
6 Correct 4 ms 1024 KB Output is correct
7 Correct 4 ms 1024 KB Output is correct
8 Correct 5 ms 896 KB Output is correct
9 Correct 4 ms 896 KB Output is correct
10 Correct 4 ms 640 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 803 ms 105984 KB Output is correct
2 Correct 803 ms 117240 KB Output is correct
3 Correct 551 ms 114844 KB Output is correct
4 Correct 467 ms 91292 KB Output is correct
5 Correct 603 ms 99704 KB Output is correct
6 Correct 637 ms 126840 KB Output is correct
7 Correct 584 ms 61024 KB Output is correct
8 Correct 793 ms 93148 KB Output is correct
9 Execution timed out 1020 ms 129244 KB Time limit exceeded
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 902 ms 90020 KB Output is correct
2 Correct 963 ms 78856 KB Output is correct
3 Correct 537 ms 92620 KB Output is correct
4 Correct 462 ms 71076 KB Output is correct
5 Correct 726 ms 100844 KB Output is correct
6 Correct 633 ms 94968 KB Output is correct
7 Correct 590 ms 101076 KB Output is correct
8 Correct 756 ms 51044 KB Output is correct
9 Execution timed out 1036 ms 87152 KB Time limit exceeded
10 Halted 0 ms 0 KB -