Submission #1702

# Submission time Handle Problem Language Result Execution time Memory
1702 2013-07-12T15:27:11 Z tncks0121 Crayfish scrivener (IOI12_scrivener) C++
100 / 100
616 ms 130456 KB
#include<stdio.h>
 
const int MAXC = 1000005;
const int lgMAXC = 20;
 
struct node{
    char letter;
    int level;
    node* parent[lgMAXC];
 
    node(char letter, node* par): letter(letter){
        parent[0] = par; 
        if(par != NULL) level = par->level + 1; else level = 0;
        for(int i=1; i<lgMAXC; i++){
            if(parent[i-1] == NULL) parent[i] = NULL;
            else parent[i] = parent[i-1]->parent[i-1];
        }
    }
};
 
node* Commands[MAXC];
node* now;
int N;
 
void Init(){
    now = new node(0, NULL);
    Commands[1] = now; N = 1;
}
 
void TypeLetter(char L){
    Commands[++N] = new node(L, now);
    now = Commands[N];
}
 
void UndoCommands(int U){
    int val = N - U; Commands[++N] = Commands[val];
    now = Commands[N];
}
 
char GetLetter(int P){ ++P;
    node* tmp = now; int L = now->level - P;
    for(int i=0; (1<<i)<=L; i++) if(L & (1<<i)){
        tmp = tmp->parent[i];
    }
    return tmp->letter;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9016 KB Output is correct
2 Correct 0 ms 9148 KB Output is correct
3 Correct 0 ms 9148 KB Output is correct
4 Correct 0 ms 9148 KB Output is correct
5 Correct 0 ms 9148 KB Output is correct
6 Correct 0 ms 9148 KB Output is correct
7 Correct 0 ms 9148 KB Output is correct
8 Correct 0 ms 9148 KB Output is correct
9 Correct 0 ms 9148 KB Output is correct
10 Correct 0 ms 9148 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9016 KB Output is correct
2 Correct 0 ms 9148 KB Output is correct
3 Correct 0 ms 9148 KB Output is correct
4 Correct 0 ms 9148 KB Output is correct
5 Correct 0 ms 9148 KB Output is correct
6 Correct 0 ms 9148 KB Output is correct
7 Correct 0 ms 9148 KB Output is correct
8 Correct 0 ms 9148 KB Output is correct
9 Correct 0 ms 9148 KB Output is correct
10 Correct 0 ms 9148 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9280 KB Output is correct
2 Correct 0 ms 9280 KB Output is correct
3 Correct 0 ms 9412 KB Output is correct
4 Correct 0 ms 9544 KB Output is correct
5 Correct 0 ms 9412 KB Output is correct
6 Correct 0 ms 9676 KB Output is correct
7 Correct 0 ms 9676 KB Output is correct
8 Correct 0 ms 9544 KB Output is correct
9 Correct 0 ms 9544 KB Output is correct
10 Correct 0 ms 9280 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 556 ms 108412 KB Output is correct
2 Correct 528 ms 118444 KB Output is correct
3 Correct 384 ms 116068 KB Output is correct
4 Correct 348 ms 92176 KB Output is correct
5 Correct 476 ms 101284 KB Output is correct
6 Correct 448 ms 127684 KB Output is correct
7 Correct 440 ms 62740 KB Output is correct
8 Correct 520 ms 94156 KB Output is correct
9 Correct 616 ms 130456 KB Output is correct
10 Correct 196 ms 95608 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 516 ms 92968 KB Output is correct
2 Correct 536 ms 82144 KB Output is correct
3 Correct 380 ms 89800 KB Output is correct
4 Correct 384 ms 67228 KB Output is correct
5 Correct 432 ms 97588 KB Output is correct
6 Correct 376 ms 91780 KB Output is correct
7 Correct 424 ms 97852 KB Output is correct
8 Correct 528 ms 47428 KB Output is correct
9 Correct 608 ms 83992 KB Output is correct
10 Correct 224 ms 94684 KB Output is correct