Submission #625440

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
6254402022-08-10 11:40:10model_codePrisoner Challenge (IOI22_prison)C++17
100 / 100
11 ms980 KiB
#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);
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...