Submission #888190

#TimeUsernameProblemLanguageResultExecution timeMemory
888190abcvuitunggioPrisoner Challenge (IOI22_prison)C++17
0 / 100
0 ms348 KiB
#include "prison.h"
#include <bits/stdc++.h>
using namespace std;
int n;
vector <vector <int>> res(22);
void f(int l, int r, int st, int i, int b){
    if (l>r)
        return;
    res[i][0]=b;
    res[i][l]=-1-b;
    res[i][r]=b-2;
    if (l+1>r-1)
        return;
    int d=(r-l+1)/3;
    for (int j=l+1;j<=l+d;j++){
        res[i][j]=st;
        for (int k=l+d+1;k<r;k++)
            res[st][k]=-1-b;
    }
    for (int j=l+d+1;j<=l+d*2;j++){
        res[i][j]=st+1;
        for (int k=l+1;k<=l+d;k++)
            res[st+1][k]=b-2;
        for (int k=l+d*2+1;k<r;k++)
            res[st+1][k]=-1-b;
    }
    for (int j=l+d*2+1;j<r;j++){
        res[i][j]=st+2;
        for (int k=l+1;k<=l+d*2;k++)
            res[st+2][k]=b-2;
    }
    f(l+1,l+d,st+3,st,b^1);
    f(l+d+1,l+d*2,st+3,st+1,b^1);
    f(l+d*2+1,r-1,st+3,st+2,b^1);
}
vector <vector <int>> devise_strategy(int N){
    n=N;
    for (int i=0;i<22;i++)
        res[i]=vector <int> (n+1,0);
    f(1,n,1,0,0);
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...