Submission #1242117

#TimeUsernameProblemLanguageResultExecution timeMemory
1242117duckindogPrisoner Challenge (IOI22_prison)C++20
56 / 100
8 ms1096 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>> devise_strategy(int N) { vector<vector<int>> ret(27, vector<int>(N + 1)); int num = 0; vector<vector<int>> trans(2, vector<int>(13)); for (int i = 12; i >= 0; --i) { trans[0][i] = ++num; trans[1][i] = ++num; } { // set begin bit ret[0][0] = 0; for (int i = 1; i <= N; ++i) { ret[0][i] = trans[i >> 12 & 1][12]; } } for (int j = 0; j <= 1; ++j) { int aFew = -2, bFew = -1; for (int i = 12; i >= 0; --i) { swap(aFew, bFew); int id = trans[j][i]; ret[id][0] = (i & 1 ? 0 : 1); for (int value = 1; value <= N; ++value) { int bit = (value >> i & 1); if (bit != j) { ret[id][value] = (j < bit ? aFew : bFew); continue; } if (i) ret[id][value] = trans[value >> (i - 1) & 1][i - 1]; } } } return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...