제출 #1362876

#제출 시각아이디문제언어결과실행 시간메모리
1362876erering죄수들의 도전 (IOI22_prison)C++20
컴파일 에러
0 ms0 KiB
vector<vector<int>> devise_strategy(int N) {
    vector<int> base;
    int prod = 1;
    while (prod < N) {
        base.push_back(3);
        prod *= 3;
    }

    int L = (int)base.size();
    int x = 3 * L;
    vector<vector<int>> s(x + 1, vector<int>(N + 1, 0));

    auto digit = [&](int value, int pos) {
        int v = value - 1;
        int div = 1;
        for (int k = pos + 1; k < L; ++k) div *= base[k];
        return (v / div) % base[pos];
    };

    auto id = [&](int pos, int d) {
        return 1 + pos * 3 + d;
    };

    s[0][0] = 0;
    for (int j = 1; j <= N; ++j) {
        s[0][j] = id(0, digit(j, 0));
    }

    for (int pos = 0; pos < L; ++pos) {
        for (int stored = 0; stored < 3; ++stored) {
            int state = id(pos, stored);
            bool stored_from_a = (pos % 2 == 0);
            s[state][0] = stored_from_a ? 1 : 0;

            for (int j = 1; j <= N; ++j) {
                int seen = digit(j, pos);

                if (stored_from_a) {
                    if (stored < seen) {
                        s[state][j] = -1;
                    } else if (stored > seen) {
                        s[state][j] = -2;
                    } else if (pos + 1 < L) {
                        s[state][j] = id(pos + 1, digit(j, pos + 1));
                    } else {
                        s[state][j] = -1;
                    }
                } else {
                    if (seen < stored) {
                        s[state][j] = -1;
                    } else if (seen > stored) {
                        s[state][j] = -2;
                    } else if (pos + 1 < L) {
                        s[state][j] = id(pos + 1, digit(j, pos + 1));
                    } else {
                        s[state][j] = -1;
                    }
                }
            }
        }
    }

    return s;
}

컴파일 시 표준 에러 (stderr) 메시지

prison.cpp:1:8: error: 'vector' was not declared in this scope
    1 | vector<vector<int>> devise_strategy(int N) {
      |        ^~~~~~
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:8: error: 'vector' was not declared in this scope
prison.cpp:1:1: error: 'vector' does not name a type
    1 | vector<vector<int>> devise_strategy(int N) {
      | ^~~~~~