Submission #104386

# Submission time Handle Problem Language Result Execution time Memory
104386 2019-04-06T10:56:48 Z dfistric Crayfish scrivener (IOI12_scrivener) C++14
60 / 100
1000 ms 199040 KB
#include <bits/stdc++.h>

#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define FORd(i, a, b) for (int i = (a); i >= (b); i--)
#define REP(i, n) FOR(i, 0, n)

using namespace std;

struct node {
    node* ch[30];
    node* par;
    char c;

    node(node* n, char cc) {
        REP(i, 26) ch[i] = 0;
        par = n, c = cc;
    }
};
node* root;

vector <node*> ve;
int flag;
string s;

void Init() {
    root = new node(NULL, '.');
    ve.push_back(root);

    return;
}

void TypeLetter(char L) {
    flag = 1;

    int x = (L - 'a');
    if (!root->ch[x]) root->ch[x] = new node(root, L);
    root = root->ch[x];
    ve.push_back(root);

    return;
}

void UndoCommands(int U) {
    flag = 1;

    root = ve[ve.size() - 1 - U];
    ve.push_back(root);

    return;
}

char GetLetter(int P) {
    if (flag) {
        s = "";
        node* curr = root;
        while (curr) {
            s.push_back(curr->c);
            curr = curr->par;
        }
        reverse(s.begin(), s.end());
        flag = 0;
    }
    return s[P + 1];
}
# Verdict Execution time Memory Grader output
1 Correct 3 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 256 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 2 ms 384 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 256 KB Output is correct
3 Correct 3 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 256 KB Output is correct
8 Correct 3 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 768 KB Output is correct
2 Correct 5 ms 768 KB Output is correct
3 Correct 4 ms 768 KB Output is correct
4 Correct 3 ms 1152 KB Output is correct
5 Correct 4 ms 768 KB Output is correct
6 Correct 6 ms 1408 KB Output is correct
7 Correct 4 ms 1280 KB Output is correct
8 Correct 6 ms 1024 KB Output is correct
9 Correct 15 ms 1124 KB Output is correct
10 Correct 4 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 274 ms 159996 KB Output is correct
2 Correct 311 ms 179768 KB Output is correct
3 Correct 399 ms 174936 KB Output is correct
4 Correct 481 ms 134100 KB Output is correct
5 Correct 288 ms 152184 KB Output is correct
6 Correct 386 ms 194128 KB Output is correct
7 Correct 312 ms 96852 KB Output is correct
8 Correct 373 ms 146132 KB Output is correct
9 Correct 425 ms 199040 KB Output is correct
10 Correct 279 ms 145876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1058 ms 11764 KB Time limit exceeded
2 Halted 0 ms 0 KB -