Submission #16258

# Submission time Handle Problem Language Result Execution time Memory
16258 2015-08-19T03:13:25 Z CodingBug Crayfish scrivener (IOI12_scrivener) C++
100 / 100
648 ms 174676 KB
#include <algorithm>
#include <vector>
#define M 1000000
using namespace std;

struct Node{
    char c;
    int h;
    Node *nxt;
    Node *par[25];
    int tp;
};

Node *a[M+1];
int t;

void Init() {
    a[t=0]=new Node();
}

void TypeLetter(char L) {
    a[t]->nxt=a[t+1]=new Node();
    a[t+1]->c=L;
    a[t+1]->h=a[t]->h+1;
    Node *p=a[t];
    while(p){
        a[t+1]->par[a[t+1]->tp++]=p;
        p=p->tp>=a[t+1]->tp ? p->par[a[t+1]->tp-1] : NULL;
    }
    t++;
}

void UndoCommands(int U) {
    a[t+1]=a[t-U];
    t++;
}

char GetLetter(int P) {
    Node *p=a[t];
    P=p->h-P-1;
    for(int i=0;P;i++){
        if((1<<i)&P){
            P-=(1<<i);
            p=p->par[i];
        }
    }
    return p->c;

}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 9148 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 9148 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 9412 KB Output is correct
2 Correct 0 ms 9412 KB Output is correct
3 Correct 1 ms 9412 KB Output is correct
4 Correct 2 ms 9808 KB Output is correct
5 Correct 2 ms 9412 KB Output is correct
6 Correct 0 ms 9940 KB Output is correct
7 Correct 2 ms 9940 KB Output is correct
8 Correct 2 ms 9676 KB Output is correct
9 Correct 0 ms 9808 KB Output is correct
10 Correct 0 ms 9412 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 520 ms 144580 KB Output is correct
2 Correct 609 ms 158308 KB Output is correct
3 Correct 428 ms 155008 KB Output is correct
4 Correct 403 ms 122404 KB Output is correct
5 Correct 497 ms 134812 KB Output is correct
6 Correct 511 ms 170848 KB Output is correct
7 Correct 460 ms 82276 KB Output is correct
8 Correct 505 ms 125176 KB Output is correct
9 Correct 598 ms 174676 KB Output is correct
10 Correct 240 ms 127024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 552 ms 123460 KB Output is correct
2 Correct 596 ms 108808 KB Output is correct
3 Correct 402 ms 119104 KB Output is correct
4 Correct 422 ms 88348 KB Output is correct
5 Correct 438 ms 129796 KB Output is correct
6 Correct 418 ms 121876 KB Output is correct
7 Correct 432 ms 130192 KB Output is correct
8 Correct 529 ms 61420 KB Output is correct
9 Correct 648 ms 111184 KB Output is correct
10 Correct 285 ms 125836 KB Output is correct