Submission #965947

# Submission time Handle Problem Language Result Execution time Memory
965947 2024-04-19T08:34:24 Z hirayuu_oj Crayfish scrivener (IOI12_scrivener) C++17
100 / 100
344 ms 141132 KB
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0; i<(n); i++)

const int N=1000000;
vector<int> indexs;
int ver=1;
vector<array<int,32>> inf_stack(N);
vector<char> lets(N);
vector<int> lens(N);
void Init() {
    lets[0]=' ';
    lens[0]=0;
    rep(i,32)inf_stack[0][i]=0;
    indexs.push_back(0);
}

void TypeLetter(char L) {

    lets[ver]=L;
    lens[ver]=lens[indexs.back()]+1;
    inf_stack[ver][0]=indexs.back();
    indexs.push_back(ver);
    for(int i=1; i<32; i++){
        inf_stack[ver][i]=inf_stack[inf_stack[ver][i-1]][i-1];
    }
    ver++;

}

void UndoCommands(int U) {
    indexs.push_back(indexs[indexs.size()-U-1]);
}

char GetLetter(int P) {

    int back=lens[indexs.back()]-P-1;
    int pos=indexs.back();
    rep(i,32){
        if(back&1){
            pos=inf_stack[pos][i];
        }
        back/=2;
    }

    return lets[pos];

}
# Verdict Execution time Memory Grader output
1 Correct 48 ms 130384 KB Output is correct
2 Correct 57 ms 130384 KB Output is correct
3 Correct 38 ms 130356 KB Output is correct
4 Correct 36 ms 130384 KB Output is correct
5 Correct 37 ms 130436 KB Output is correct
6 Correct 37 ms 130328 KB Output is correct
7 Correct 39 ms 130388 KB Output is correct
8 Correct 37 ms 130388 KB Output is correct
9 Correct 38 ms 130384 KB Output is correct
10 Correct 37 ms 130388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 38 ms 130384 KB Output is correct
2 Correct 38 ms 130384 KB Output is correct
3 Correct 37 ms 130388 KB Output is correct
4 Correct 37 ms 130384 KB Output is correct
5 Correct 37 ms 130384 KB Output is correct
6 Correct 37 ms 130388 KB Output is correct
7 Correct 38 ms 130392 KB Output is correct
8 Correct 37 ms 130496 KB Output is correct
9 Correct 37 ms 130388 KB Output is correct
10 Correct 37 ms 130384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 38 ms 130568 KB Output is correct
2 Correct 38 ms 130644 KB Output is correct
3 Correct 37 ms 130640 KB Output is correct
4 Correct 39 ms 130640 KB Output is correct
5 Correct 37 ms 130640 KB Output is correct
6 Correct 38 ms 130640 KB Output is correct
7 Correct 38 ms 130644 KB Output is correct
8 Correct 44 ms 130644 KB Output is correct
9 Correct 38 ms 130644 KB Output is correct
10 Correct 39 ms 130652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 310 ms 137428 KB Output is correct
2 Correct 338 ms 138484 KB Output is correct
3 Correct 270 ms 138944 KB Output is correct
4 Correct 265 ms 141132 KB Output is correct
5 Correct 285 ms 138940 KB Output is correct
6 Correct 277 ms 138524 KB Output is correct
7 Correct 240 ms 139928 KB Output is correct
8 Correct 258 ms 139724 KB Output is correct
9 Correct 344 ms 138588 KB Output is correct
10 Correct 202 ms 138436 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 343 ms 138956 KB Output is correct
2 Correct 317 ms 140492 KB Output is correct
3 Correct 255 ms 139208 KB Output is correct
4 Correct 320 ms 141004 KB Output is correct
5 Correct 245 ms 138696 KB Output is correct
6 Correct 271 ms 138684 KB Output is correct
7 Correct 251 ms 138948 KB Output is correct
8 Correct 304 ms 139924 KB Output is correct
9 Correct 335 ms 139464 KB Output is correct
10 Correct 230 ms 138640 KB Output is correct