Submission #79069

# Submission time Handle Problem Language Result Execution time Memory
79069 2018-10-11T02:56:04 Z TAMREF Crayfish scrivener (IOI12_scrivener) C++11
34 / 100
1000 ms 83368 KB
#include <bits/stdc++.h>
using namespace std;
const int mx = 1e6 + 5;
const int lg = 20;
int C[mx], I[mx];
char X[mx];
int p[lg][mx];
int n;

void show(int i){
    printf("C : %d I : %d X : %c\n",C[i],I[i],X[C[i]]);
}

void Init() {
}

void TypeLetter(char L) {
    ++n;
    I[n] = I[n-1] + 1;
    C[n] = n;
    X[n] = L;
    p[0][n] = n - 1;
    for(int j = 1; j < lg; j++){
        //if(!p[j-1][n]) break;
        //else{
            p[j][n] = p[j-1][p[j-1][n]];
        //}
    }
}

void UndoCommands(int U) {
    ++n;
    if(U == n){
        I[n] = 0;
        C[n] = 0;
        X[n] = 'U';
        return;
    }
    I[n] = I[n - 1 - U];
    C[n] = C[n - 1 - U];
    p[0][n] = n - 1 - U;
    for(int j = 1; j < lg; j++){
        //if(!p[j-1][n]) break;
        //else{
            p[j][n] = p[j-1][p[j-1][n]];
        //}
    }
}

char GetLetter(int P) {
    ++P;
    int b = n;
    for(int j = lg-1; j >= 0; j--){
        if(I[b] == P) return X[C[b]];
        if(I[p[j][b]] >= P) b = p[j][b];
    }
    return I[b] == P ? X[C[b]] : X[C[p[0][b]]];
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 504 KB Output is correct
2 Correct 3 ms 628 KB Output is correct
3 Correct 2 ms 712 KB Output is correct
4 Correct 2 ms 712 KB Output is correct
5 Correct 2 ms 792 KB Output is correct
6 Correct 2 ms 792 KB Output is correct
7 Correct 2 ms 848 KB Output is correct
8 Correct 2 ms 876 KB Output is correct
9 Correct 2 ms 876 KB Output is correct
10 Correct 2 ms 876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 876 KB Output is correct
2 Correct 2 ms 876 KB Output is correct
3 Correct 2 ms 876 KB Output is correct
4 Correct 2 ms 876 KB Output is correct
5 Correct 2 ms 876 KB Output is correct
6 Correct 2 ms 876 KB Output is correct
7 Correct 2 ms 876 KB Output is correct
8 Correct 2 ms 876 KB Output is correct
9 Correct 2 ms 876 KB Output is correct
10 Correct 3 ms 876 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 892 KB Output is correct
2 Correct 3 ms 1020 KB Output is correct
3 Correct 4 ms 1148 KB Output is correct
4 Correct 4 ms 1152 KB Output is correct
5 Correct 4 ms 1152 KB Output is correct
6 Correct 5 ms 1152 KB Output is correct
7 Correct 3 ms 1152 KB Output is correct
8 Correct 3 ms 1152 KB Output is correct
9 Correct 3 ms 1152 KB Output is correct
10 Correct 3 ms 1152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 453 ms 63064 KB Output is correct
2 Correct 477 ms 76924 KB Output is correct
3 Correct 399 ms 76924 KB Output is correct
4 Correct 489 ms 80076 KB Output is correct
5 Correct 587 ms 80076 KB Output is correct
6 Correct 410 ms 83368 KB Output is correct
7 Execution timed out 1078 ms 83368 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 869 ms 83368 KB Output is correct
2 Correct 991 ms 83368 KB Output is correct
3 Correct 438 ms 83368 KB Output is correct
4 Correct 522 ms 83368 KB Output is correct
5 Correct 415 ms 83368 KB Output is correct
6 Correct 457 ms 83368 KB Output is correct
7 Correct 472 ms 83368 KB Output is correct
8 Execution timed out 1082 ms 83368 KB Time limit exceeded
9 Halted 0 ms 0 KB -