Submission #13498

# Submission time Handle Problem Language Result Execution time Memory
13498 2015-02-22T02:34:08 Z tncks0121 Crayfish scrivener (IOI12_scrivener) C++14
100 / 100
623 ms 130460 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 9152 KB Output is correct
2 Correct 0 ms 9152 KB Output is correct
3 Correct 0 ms 9152 KB Output is correct
4 Correct 0 ms 9152 KB Output is correct
5 Correct 0 ms 9152 KB Output is correct
6 Correct 0 ms 9152 KB Output is correct
7 Correct 0 ms 9152 KB Output is correct
8 Correct 0 ms 9152 KB Output is correct
9 Correct 0 ms 9152 KB Output is correct
10 Correct 0 ms 9152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9152 KB Output is correct
2 Correct 0 ms 9152 KB Output is correct
3 Correct 0 ms 9152 KB Output is correct
4 Correct 0 ms 9152 KB Output is correct
5 Correct 0 ms 9152 KB Output is correct
6 Correct 0 ms 9152 KB Output is correct
7 Correct 0 ms 9152 KB Output is correct
8 Correct 0 ms 9152 KB Output is correct
9 Correct 0 ms 9152 KB Output is correct
10 Correct 0 ms 9152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 9284 KB Output is correct
2 Correct 0 ms 9284 KB Output is correct
3 Correct 0 ms 9416 KB Output is correct
4 Correct 1 ms 9548 KB Output is correct
5 Correct 1 ms 9416 KB Output is correct
6 Correct 0 ms 9680 KB Output is correct
7 Correct 0 ms 9680 KB Output is correct
8 Correct 0 ms 9548 KB Output is correct
9 Correct 0 ms 9548 KB Output is correct
10 Correct 0 ms 9284 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 490 ms 108416 KB Output is correct
2 Correct 524 ms 118448 KB Output is correct
3 Correct 369 ms 116072 KB Output is correct
4 Correct 358 ms 92180 KB Output is correct
5 Correct 484 ms 101288 KB Output is correct
6 Correct 464 ms 127688 KB Output is correct
7 Correct 442 ms 62744 KB Output is correct
8 Correct 491 ms 94160 KB Output is correct
9 Correct 566 ms 130460 KB Output is correct
10 Correct 245 ms 95612 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 533 ms 92972 KB Output is correct
2 Correct 537 ms 82148 KB Output is correct
3 Correct 355 ms 89804 KB Output is correct
4 Correct 379 ms 67232 KB Output is correct
5 Correct 408 ms 97592 KB Output is correct
6 Correct 388 ms 91784 KB Output is correct
7 Correct 398 ms 97856 KB Output is correct
8 Correct 532 ms 47432 KB Output is correct
9 Correct 623 ms 83996 KB Output is correct
10 Correct 216 ms 94688 KB Output is correct