Submission #7574

# Submission time Handle Problem Language Result Execution time Memory
7574 2014-08-11T11:59:32 Z baneling100 Crayfish scrivener (IOI12_scrivener) C++
100 / 100
504 ms 127056 KB
int NodeNum, Anc[1000001][30], OrderNum, Order[1000001], Lev[1000001];
char A[1000001];

void Init(void)
{
}

void TypeLetter(char L)
{
    int i;

    NodeNum++;
    A[NodeNum]=L;
    Anc[NodeNum][0]=Order[OrderNum];
    Lev[NodeNum]=Lev[Order[OrderNum]]+1;
    i=1;
    while(Anc[Anc[NodeNum][i-1]][i-1])
    {
        Anc[NodeNum][i]=Anc[Anc[NodeNum][i-1]][i-1];
        i++;
    }
    OrderNum++;
    Order[OrderNum]=NodeNum;
}

void UndoCommands(int U)
{
    OrderNum++;
    Order[OrderNum]=Order[OrderNum-U-1];
}

char GetLetter(int P)
{
    int N, Now, Cnt=0;

    N=Lev[Order[OrderNum]]-P-1;
    Now=Order[OrderNum];
    while(N)
    {
        if(N&1)
            Now=Anc[Now][Cnt];
        Cnt++;
        N>>=1;
    }
    return A[Now];
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 127056 KB Output is correct
2 Correct 0 ms 127056 KB Output is correct
3 Correct 0 ms 127056 KB Output is correct
4 Correct 0 ms 127056 KB Output is correct
5 Correct 0 ms 127056 KB Output is correct
6 Correct 0 ms 127056 KB Output is correct
7 Correct 0 ms 127056 KB Output is correct
8 Correct 0 ms 127056 KB Output is correct
9 Correct 0 ms 127056 KB Output is correct
10 Correct 0 ms 127056 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 127056 KB Output is correct
2 Correct 0 ms 127056 KB Output is correct
3 Correct 0 ms 127056 KB Output is correct
4 Correct 0 ms 127056 KB Output is correct
5 Correct 0 ms 127056 KB Output is correct
6 Correct 0 ms 127056 KB Output is correct
7 Correct 0 ms 127056 KB Output is correct
8 Correct 0 ms 127056 KB Output is correct
9 Correct 0 ms 127056 KB Output is correct
10 Correct 0 ms 127056 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 127056 KB Output is correct
2 Correct 0 ms 127056 KB Output is correct
3 Correct 0 ms 127056 KB Output is correct
4 Correct 0 ms 127056 KB Output is correct
5 Correct 0 ms 127056 KB Output is correct
6 Correct 0 ms 127056 KB Output is correct
7 Correct 0 ms 127056 KB Output is correct
8 Correct 0 ms 127056 KB Output is correct
9 Correct 0 ms 127056 KB Output is correct
10 Correct 0 ms 127056 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 388 ms 127056 KB Output is correct
2 Correct 396 ms 127056 KB Output is correct
3 Correct 328 ms 127056 KB Output is correct
4 Correct 312 ms 127056 KB Output is correct
5 Correct 384 ms 127056 KB Output is correct
6 Correct 372 ms 127056 KB Output is correct
7 Correct 352 ms 127056 KB Output is correct
8 Correct 348 ms 127056 KB Output is correct
9 Correct 460 ms 127056 KB Output is correct
10 Correct 192 ms 127056 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 436 ms 127056 KB Output is correct
2 Correct 424 ms 127056 KB Output is correct
3 Correct 308 ms 127056 KB Output is correct
4 Correct 344 ms 127056 KB Output is correct
5 Correct 336 ms 127056 KB Output is correct
6 Correct 296 ms 127056 KB Output is correct
7 Correct 340 ms 127056 KB Output is correct
8 Correct 420 ms 127056 KB Output is correct
9 Correct 504 ms 127056 KB Output is correct
10 Correct 180 ms 127056 KB Output is correct