Submission #628929

#TimeUsernameProblemLanguageResultExecution timeMemory
628929dariaPrisoner Challenge (IOI22_prison)C++17
72 / 100
11 ms1108 KiB
#include "bits/stdc++.h"
#include "prison.h"
using namespace std;
#define ll int


vector<vector<int> > devise_strategy(int N) {
 vector<vector<int> > s(24, vector<int>(N+1, 0));
 int v[6][4], mp[24], mp2[24], c = 1;
 for(int i=0; i<6; ++i){
  for(int j=0; j<4; ++j){
   if(i == 0 && j == 3){
    v[i][j] = 0;
   } else{
    mp[c] = j;
    v[i][j] = c++;
   }
  }
 }
 int ans[2] = {-1, -2};
 s[0][0] = 1;
 for(int j=1; j<=N; ++j){
  int bit = (j >> 11)%4;
  s[0][j] = v[0][bit];
 }
 for(int i=1; i<24; ++i){
  int k = i/4;
  s[i][0] = k%2;
  for(int j=1; j<=N; ++j){
   int bit = (j >> (11-2*k))%4;
   if(bit > mp[i]) s[i][j] = ans[1-k%2];
   if(bit < mp[i]) s[i][j] = ans[k%2];
   if(bit == mp[i]){
    bit = (j >> (9-2*k))%4;
    if(k<5) s[i][j] = v[k+1][bit];
    else if(j%2) s[i][j] = ans[1-k%2];
    else s[i][j] = ans[k%2];
   }
  }
 }
 return s;
}

Compilation message (stderr)

prison.cpp: In function 'std::vector<std::vector<int> > devise_strategy(int)':
prison.cpp:9:23: warning: unused variable 'mp2' [-Wunused-variable]
    9 |  int v[6][4], mp[24], mp2[24], c = 1;
      |                       ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...