# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1210701 | qwusha | Prisoner Challenge (IOI22_prison) | C++20 | 0 ms | 324 KiB |
#include <bits/stdc++.h>
#include "prison.h"
using namespace std;
#define fi first
#define se second
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll inf = 1e18;
vector<vector<int>> devise_strategy(int n) {
vector<vector<int>> s(40, vector<int>(n + 1));
for (int val = 0; val < 40; val++) {
if (val % 3 == 0) {
s[val][0] = 0;
for (int x = 1; x <= n; x++) {
int l = 1, r = 5001;
int done = val / 3;
for (int i = 0; i < done + 1; i++) {
int mid = (l + r) / 2;
if (i == done) {
if (x < mid) {
s[val][x] = 3 * done + 1;
} else {
s[val][x] = 3 * done + 2;
}
} else {
if (x < mid) {
r = mid;
} else {
l = mid;
}
}
}
}
} else {
s[val][0] = 1;
for (int x = 1; x <= n; x++) {
int l = 1, r = 5001;
int done = val / 3;
int typ = val % 3;
s[val][x] = (done + 1) * 3;
for (int i = 0; i < done + 1; i++) {
int mid = (l + r) / 2;
if (i == done) {
if (x < mid) {
if (typ == 2) {
s[val][x] = -2;
}
} else {
if (typ == 1) {
s[val][x] = -1;
}
}
} else {
if (x < mid) {
r = mid;
} else {
l = mid;
}
}
}
}
}
}
return s;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |