#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |