Submission #370500

#TimeUsernameProblemLanguageResultExecution timeMemory
370500ijxjdjdCrayfish scrivener (IOI12_scrivener)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "scrivener.h"
#define FR(i, N) for (int i = 0; i < int(N); i++)
#define all(x) begin(x), end(x)

using namespace std;

using ll = long long;

const int MAXN = (int)(1e6) + 5;
const int MAXK = 21;

int up[MAXN][MAXK];
int undo[MAXN][MAXK];
int depth[MAXN];
char res[MAXN];
int cnt = 1;
int liftUp(int u, int d) {
    for (int i = 0; i < MAXK; i++) {
        if (d&(1<<i)) {
            u = up[u][i];
        }
    }
    return u;
}
int liftUndo(int u, int d) {
    for (int i = 0; i < MAXK; i++) {
        if (d&(1<<i)) {
            u = undo[u][i];
        }
    }
    return u;
}
void Init() {

}

void TypeLetter(char L) {
    res[cnt] = L;
    up[cnt][0] = cnt-1;
    undo[cnt][0] = cnt-1;
    for (int i = 1; i < MAXK; i++) {
        up[cnt][i] = up[up[cnt][i-1]][i-1];
        undo[cnt][i] = undo[undo[cnt][i-1]][i-1];
    }
    depth[cnt] = depth[cnt-1];
    cnt++;
}

void UndoCommands(int U) {
    int next = liftUndo(cnt-1, U);
    res[cnt] = res[next];
    up[cnt][0] = up[next][0];
    undo[cnt][0] = cnt-1;
    for (int i = 1; i < MAXK; i++) {
        up[cnt][i] = up[up[cnt][i-1]][i-1];
        undo[cnt][i] = undo[undo[cnt][i-1]][i-1];
    }
    depth[cnt] = depth[next];
}
char GetLetter(int P) {
    return  res[liftUp(cnt-1, depth[cnt-1] - P - 1)];
}

Compilation message (stderr)

scrivener.cpp:2:10: fatal error: scrivener.h: No such file or directory
    2 | #include "scrivener.h"
      |          ^~~~~~~~~~~~~
compilation terminated.