# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
625440 | model_code | Prisoner Challenge (IOI22_prison) | C++17 | 11 ms | 980 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "prison.h"
#include <cassert>
#include <vector>
std::vector<std::vector<int>> devise_strategy(int N) {
std::vector<int> dp = {2}, best = {0};
for (int i = 1; dp.back() < N; ++i) {
dp.push_back(2);
best.push_back(0);
for (int j = 1; j <= i; ++j) {
int cur = dp[i - j] * j + 2;
if (cur > dp[i]) {
dp[i] = cur;
best[i] = j;
}
}
}
int x = (int)dp.size() - 1;
int cover = dp[x];
std::vector<int> divide;
int now = x;
while (now > 0) {
divide.push_back(best[now]);
now -= best[now];
}
std::vector<std::vector<int>> ret(x + 1);
for (int i = 0; i <= x; ++i) {
ret[i].assign(cover+1, 0);
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |