#pragma GCC diagnostic ignored "-Wparentheses"
#include "prison.h"
#include <bits/stdc++.h>
using namespace std;
std::vector<std::vector<int>> devise_strategy(int N) {
vector<vector<int>> res;
vector<int> add(N + 1);
add[0] = 0;
add[1] = -1;
add[N] = -2;
int bit = 1;
res.push_back(add);
while ((1 << (bit + 1)) < N) bit += 1;
for (int i = bit; i >= 0; --i) {
auto na = add;
for (int j = 2; j < N; ++j) {
if (j >> i & 1) {
na[j] = i * 3;
} else {
na[j] = i * 3 - 1;
}
}
res.push_back(na);
na = add;
na[0] = 1;
for (int j = 2; j < N; ++j) {
if (j >> i & 1) {
na[j] = i * 3 + 1;
} else {
na[j] = -2;
}
}
res.push_back(na);
na = add;
na[0] = 1;
for (int j = 2; j < N; ++j) {
if (j >> i & 1) {
na[j] = -1;
} else {
na[j] = i * 3 + 1;
}
}
res.push_back(na);
}
for (int i = 2; i < N; ++i) {
for (int j = bit; j >= 0; --j) {
if (i >> j & 1) {
res[0][i] = (bit - j) * 3 + 1;
break;
}
}
}
// for (auto& v : res) {
// for (auto& u : v) {
// cerr << u << " ";
// }
// cerr << "\n";
// }
// cerr << "\n";
// cout << res.size() << "\n";
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |