This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "prison.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
vector<vector<int>> devise_strategy(int N) {
vector<int> czesc (N+1,0);
vector<vector<int>> odp (25,czesc);
odp[0][0] = 0;
for (int x=1;x<=N;x++) odp[0][x] = 1 + (x & (1<<12));
for (int y=1;y<12;y++){
odp[2*y-1][0] = y%2;
for (int x=1;x<=N;x++){
if (x&(1<<(12-y+1))) odp[2*y-1][x] = (y%2==0?-2:-1);
else odp[2*y-1][x] = 2*y + 1 + (x & (1<<(12-y)));
}
odp[2*y][0] = y%2;
for (int x=1;x<=N;x++){
if (!(x&(1<<(12-y+1)))) odp[2*y][x] = (y%2==0?-1:-2);
else odp[2*y][x] = 2*y + 1 + (x & (1<<(12-y)));
}
}
odp[23][0] = 1;
for (int x=1;x<=N;x++){
if (x&2) odp[25][x] = -2;
else odp[25][x] = (x&1?-2:-1);
}
odp[24][0] = 1;
for (int x=1;x<=N;x++){
if (!(x&2)) odp[25][x] = -1;
else odp[25][x] = (x&1?-2:-1);
}
return odp;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |