#include <bits/stdc++.h>
#include "prison.h"
#define range(it, a, b) for (ll it = a; it < b; it++)
#define invr(it, a, b) for (ll it = a; it >= b; it--)
#define all(x) begin(x), end(x)
#define ll long long
#define ull unsigned long long
#define ld long double
#define INF64 ((ll) 1 << 62)
#define INF32 (1 << 30)
#define mset multiset
#define uset unordered_set
#define umap unordered_map
#define pqueue priority_queue
#define ptr(A) shared_ptr<A>
#define v(x) vector<x>
using namespace std;
v(v(int)) devise_strategy(int N) {
v(v(int)) ans (60, v(int)(N+1));
range(b, 0, 13) {
range(s, 0, 3) {
range(j, 1, N+1) {
int i = (s << 4) + b;
int rb = 12 - b;
ans[i][0] = (s > 0);
// A IS ALREADY CHECKED
if (s > 0) {
bool bb = ((j & (1 << rb)) > 0);
bool ab = (s == 2);
if (ab != bb)
ans[i][j] = (bb ? -1 : -2);
else ans[i][j] = b+1;
continue;
}
// CHECK A
bool ab = ((j & (1 << rb)) > 0);
int ns = (ab ? 2 : 1);
ans[i][j] = (ns << 4) + b;
}
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |