Submission #828787

# Submission time Handle Problem Language Result Execution time Memory
828787 2023-08-17T16:09:14 Z bachhoangxuan Crayfish scrivener (IOI12_scrivener) C++17
100 / 100
333 ms 67312 KB
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
const int maxl=20;

char c[maxn];
vector<int> node;
int cnt=0,cur=0;
int dep[maxn],par[maxn][maxl];

void Init() {}

void TypeLetter(char L) {
    cnt++;par[cnt][0]=cur;
    for(int i=1;i<maxl;i++) par[cnt][i]=par[par[cnt][i-1]][i-1];
    dep[cnt]=dep[cur]+1;c[cnt]=L;
    cur=cnt;node.push_back(cur);
    //cout << cur << '\n';
}

void UndoCommands(int U) {
    cur=node[(int)node.size()-U-1];
    node.push_back(cur);
    //cout << cur << '\n';
}

char GetLetter(int k) {
    k=dep[cur]-k-1;
    int cc=cur;
    for(int i=0;i<maxl;i++) if(k&(1<<i)) cc=par[cc][i];
    return c[cc];
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 320 KB Output is correct
6 Correct 1 ms 320 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 316 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 1 ms 320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 0 ms 316 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 1 ms 468 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 596 KB Output is correct
5 Correct 1 ms 468 KB Output is correct
6 Correct 1 ms 716 KB Output is correct
7 Correct 1 ms 596 KB Output is correct
8 Correct 1 ms 596 KB Output is correct
9 Correct 1 ms 596 KB Output is correct
10 Correct 2 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 223 ms 55220 KB Output is correct
2 Correct 320 ms 60900 KB Output is correct
3 Correct 233 ms 60508 KB Output is correct
4 Correct 253 ms 50516 KB Output is correct
5 Correct 234 ms 53296 KB Output is correct
6 Correct 205 ms 65872 KB Output is correct
7 Correct 214 ms 35756 KB Output is correct
8 Correct 204 ms 50600 KB Output is correct
9 Correct 288 ms 67312 KB Output is correct
10 Correct 168 ms 50208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 265 ms 48496 KB Output is correct
2 Correct 294 ms 44048 KB Output is correct
3 Correct 221 ms 48056 KB Output is correct
4 Correct 217 ms 38364 KB Output is correct
5 Correct 215 ms 51472 KB Output is correct
6 Correct 198 ms 48684 KB Output is correct
7 Correct 204 ms 51548 KB Output is correct
8 Correct 234 ms 28296 KB Output is correct
9 Correct 333 ms 45524 KB Output is correct
10 Correct 170 ms 49812 KB Output is correct