Submission #838982

#TimeUsernameProblemLanguageResultExecution timeMemory
83898212345678Prisoner Challenge (IOI22_prison)C++17
0 / 100
7 ms852 KiB
#include "prison.h"

#include <bits/stdc++.h>

using namespace std;

const int nx=6561, kx=25;
vector<vector<int>> ans(kx, vector<int> (nx+1));

std::vector<std::vector<int>> devise_strategy(int N) {
  ans[0][0]=0;
  for (int i=1; i<=nx; i++) ans[0][i]=((i-1)/(nx/3))+1;
  for (int i=1; i<kx; i++)
  {
    int col=(i-1)/3+1, c=(i-1)%3;
    ans[i][0]=(((i-1)/3)%2==0);
    for (int j=1; j<=nx; j++)
    {
      int vl=((j-1)%(nx/(int)pow(3, col-1)));
      vl/=(nx/(int)pow(3, col));
      if (vl<c) ans[i][j]=-1-ans[i][0];
      else if (vl==c) ans[i][j]=min(kx-1, col*3+1+vl);
      else ans[i][j]=-2+ans[i][0]; 
    }
  }
  vector<vector<int>> ans2(kx, vector<int> (N+1));
  for (int i=0; i<kx; i++) for (int j=0; j<=N; j++) ans2[i][j]=ans[i][j];
  return ans2;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...