Submission #625975

#TimeUsernameProblemLanguageResultExecution timeMemory
625975I_love_Hoang_YenPrisoner Challenge (IOI22_prison)C++17
Compilation error
0 ms0 KiB
#include "bits/stdc++.h"
using namespace std;

const int NBIT = 2;
std::pair<int,int> decode(int encoded) {
    return {
        NBIT - encoded / 3 - 1,
        encoded % 3,
    };
}

int encode(int bit, int t) {
    if (bit < 0) return 0;
    return (NBIT - bit - 1) * 3 + t;
}

std::vector<std::vector<int>> divise_strategy(int n) {
    const int NSTATE = NBIT * 3;
    std::vector<std::vector<int>> res(NSTATE, std::vector<int> (n+1, 0));

    for (int state = 0; state < NSTATE; ++state) {
        auto [bit, t] = decode(state);
        if (t == 0) res[state][0] = 0;
        else res[state][0] = 1;

        for (int i = 1; i <= n; ++i) {
            std::bitset<NBIT> bits {(unsigned) i};

            if (t == 0) {
                res[state][i] = encode(bit, bits[bit] + 1);
            } else {
                int a_bit = t - 1;
                int b_bit = bits[bit];
                if (a_bit < b_bit) res[state][i] = -1;
                else if (a_bit > b_bit) res[state][i] = -2;
                else res[state][i] = encode(bit - 1, 0);
            }
        }
    }

    return res;
}

Compilation message (stderr)

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