Submission #1255639

#TimeUsernameProblemLanguageResultExecution timeMemory
1255639ArtCrayfish scrivener (IOI12_scrivener)C++20
Compilation error
0 ms0 KiB
//      - Art -
#include <bits/stdc++.h>

#define el              cout << '\n'

#define FOR(i, a, b)    for (int i = (a), _b = (b); i <= _b; ++i)
#define REV(i, b, a)    for (int i = (b), _a = (a); i >= _a; --i)
#define REP(i, c)       for (int i = 0, _c = (c); i < _c; ++i)

const int N = 1e6 + 7;

using namespace std;

string ans;
int sz, depth[N], par[N][20];

void TypeLetter(char L) {
    ans += L;
    ++sz;
    par[sz][0] = sz - 1;
    depth[sz] = depth[sz - 1] + 1;
    FOR (j, 1, 19) {
        par[sz][j] = par[par[sz][j - 1]][j - 1];
    }
}

void UndoCommands(int U) {
    ans += 'X';
    ++sz;
    par[sz][0] = sz - U - 1;
    depth[sz] = depth[sz - U - 1];
    FOR (j, 1, 19) {
        par[sz][j] = par[par[sz][j - 1]][j - 1];
    }
}

int lift(int u, int k) {
    REV (i, 19, 0) {
        if (depth[par[u][i]] >= k) {
            u = par[u][i];
        }
    }
    return u;
}

char GetLetter(int P) {
    ++P; // 1-based idx
    return ans[lift(sz, P) - 1];
}

// int main() {

//     #define name "scrivener"
//     if (fopen(name".inp", "r")) {
//         freopen(name".inp", "r", stdin);
//         freopen(name".out", "w", stdout);
//     }

//     ios_base::sync_with_stdio(false);
//     cin.tie(0); cout.tie(0);

//     int subtask;
//     cin >> subtask;
//     int q;
//     cin >> q;
//     while (q--) {
//         char tp;
//         cin >> tp;
//         if (tp == 'T') {
//             char c;
//             cin >> c;
//             TypeLetter(c);
//         }
//         else if (tp == 'U') {
//             int k;
//             cin >> k;
//             UndoCommands(k);
//         }
//         else {
//             int i;
//             cin >> i;
//             cout << GetLetter(i);
//         }
//     }

//     return 0;
// }

Compilation message (stderr)

/usr/bin/ld: /tmp/cc6ubzJp.o: in function `main':
grader.cpp:(.text.startup+0x6e): undefined reference to `Init()'
collect2: error: ld returned 1 exit status