Submission #626467

#TimeUsernameProblemLanguageResultExecution timeMemory
626467huutuanPrisoner Challenge (IOI22_prison)C++17
65 / 100
12 ms1108 KiB
#include "prison.h"
#include<bits/stdc++.h>

using namespace std;

vector<vector<int>> devise_strategy(int n){
    vector<vector<int>> v(25, vector<int>(n+1));
    for (int i=0; i<8; ++i){
        v[i*3+1][0]=v[i*3+2][0]=v[i*3+3][0]=!(i&1);
    }
    int mm=2187;
    for (int j=1; j<=n; ++j){
        v[0][j]=(j/mm)%3+1;
    }
    for (int r=0; r<8; ++r){
        for (int i=3*r+1; i<3*r+4; ++i){
            for (int j=1; j<=n; ++j){
                int s=(i+2)%3;
                int t=(j/mm)%3;
                if (s<t){
                    v[i][j]=-1;
                    if (r&1ll) v[i][j]=-2;
                }
                if (s>t){
                    v[i][j]=-2;
                    if (r&1ll) v[i][j]=-1;
                }
                if (s==t){
                    if (mm==1) continue;
                    int u=(j/(mm/3))%3;
                    v[i][j]=u+(r+1)*3+1;
                }
            }
        }
        mm/=3;
    }
    return v;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...