#include "prison.h"
#include <vector>
std::vector<std::vector<int>> devise_strategy(int N) {
std::vector<std::vector<int>> strategy(25, std::vector<int>(N + 1));
for (int val = 0; val < 25; ++val) {
if (val == 0) {
strategy[val][0] = 0;
for (int inbaga = 1; inbaga <= N; ++inbaga) strategy[val][inbaga] = 1 + (inbaga >= 4096);
continue;
}
int bitnum = 12 - (val - 1) / 2;
int state = (val - 1) % 2;
strategy[val][0] = ~bitnum & 1;
for (int inbag = 1; inbag <= N; ++inbag) {
int curbit = (inbag >> bitnum) & 1;
if (curbit != state) {
strategy[val][inbag] = -1 - (state != (bitnum & 1));
continue;
}
int newbitnum = bitnum - 1;
if (newbitnum == 0) {
strategy[val][inbag] = -1 - (inbag & 1);
continue;
}
strategy[val][inbag] = val + 2 - state + ((inbag >> newbitnum) & 1);
}
}
return strategy;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |