Submission #1247558

#TimeUsernameProblemLanguageResultExecution timeMemory
1247558fskaricaPrisoner Challenge (IOI22_prison)C++20
0 / 100
1 ms328 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define pii pair<int, int> int n; vector <vector<int>> ret; vector <int> v; vector<std::vector<int>> devise_strategy(int N) { n = N; int bit = 1; while ((1 << (bit + 1)) <= n) { bit++; } v.clear(); v.push_back(0); for (int i = 1; i <= n; i++) { if (i & (1 << bit)) v.push_back(2); else v.push_back(1); } ret.push_back(v); int m = bit * 2 + 1; for (int i = 1; i < m; i += 2) { bit--; v.clear(); v.push_back(((i + 1) / 2) % 2); for (int i = 1; i <= n; i++) { if (i & (1 << (bit + 1))) v.push_back(-1); else { if (i & (1 << bit)) v.push_back(i + 2); else v.push_back(i + 1); } } ret.push_back(v); v.clear(); v.push_back(((i + 1) / 2) % 2); for (int i = 1; i <= n; i++) { if (!(i & (1 << (bit + 1)))) v.push_back(-2); else { if (i & (1 << bit)) v.push_back(i + 2); else v.push_back(i + 1); } } ret.push_back(v); } for (int i = 0; i < ret.size(); i++) { for (int j = 0; j < ret[i].size(); j++) { if (ret[i][j] >= (int)ret.size()) { ret[i][j] = -1; } } } return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...