#include<iostream>
#include<algorithm>
#include<vector>
#include "prison.h"
using namespace std;
int bitval(int bit,int num,int base)
{
vector<int>tobase;
while(num!=0)
{
tobase.push_back(num%base);
num/=base;
}
return tobase[bit];
}
std::vector<std::vector<int>> devise_strategy(int N)
{
int n=N;
vector<vector<int>>s;
s.resize(25);
for(int i=0;i<=24;i++)s[i].resize(n+1);
s[0][0]=0;
for(int j=1;j<=n;j++)
{
s[0][j]=bitval(7,j,3)+1;
}
for(int i=1;i<=22;i+=3)
{
s[i][0]=(i+2)/3;
int bit=7-s[i][0];
s[i][0]=s[i][0]%2;
s[i+1][0]=s[i][0];
s[i+2][0]=s[i][0];
for(int j=1;j<=n;j++)
{
int valcheck=bitval(bit+1,j,3);
if(valcheck==2)
{
s[i][j]=(abs(bit)%2==1 ? -1 : -2);
s[i+1][j]=(abs(bit)%2==1 ? -1 : -2);
s[i+2][j]=min(24,bitval(bit,j,3)+i+3);
}
else if(valcheck==1)
{
s[i][j]=(abs(bit)%2==1 ? -1 : -2);
s[i+1][j]=min(24,bitval(bit,j,3)+i+3);
s[i+2][j]=(abs(bit)%2==1 ? -2 : -1);
}
else
{
s[i][j]=min(24,bitval(bit,j,3)+i+3);
s[i+1][j]=(abs(bit)%2==1 ? -2 : -1);
s[i+2][j]=(abs(bit)%2==1 ? -2 : -1);
}
}
}
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... |