Submission #1225626

#TimeUsernameProblemLanguageResultExecution timeMemory
1225626LeonidCukPrisoner Challenge (IOI22_prison)C++20
0 / 100
3 ms584 KiB
#include <bits/stdc++.h>
#include "prison.h"
using namespace std;
int n;
int vrni(int a)
{
    if(a==0)return -1;
    else return -2;
}
vector<vector<int>>devise_strategy(int N)
{
    n=N;
    int x=n;
    vector<vector<int>>res(1,vector<int>(n+1));
    res[0][0]=0;
    x=x/2+x%2;
    for(int i=1;i<=n;i++)
    {
        if(i==1)res[0][1]=-1;
        else if(i==n)res[0][n]=-2;
        else if(i<x)res[0][i]=1;
        else res[0][i]=2;
    }
    int k1=0,k=0;
    while(x>1)
    {
        res.push_back(vector<int>(n+1));
        res.push_back(vector<int>(n+1));
        k1=(k1+1)%2;
        int t=k+2+1;
        k++;
        res[k][0]=k1;
        res[k+1][0]=k1;
        int y=x/2+x%2;
        res[k][1]=vrni(k1);
        res[k][n]=vrni(k1^1);
        for(int i=2;i<n;i++)
        {
            if(x==2)
            {
                if(i%2==0)res[k][i]=vrni(k1);
                else res[k][i]=vrni(k1^1);
            }
            else if((i/x)%2==0)res[k][i]=t+(i/y)%2;
            else res[k][i]=vrni(k1^1);
        }
        k++;
        res[k][1]=vrni(k1);
        res[k][n]=vrni(k1^1);
        for(int i=2;i<n;i++)
        {
            if(x==2)
            {
                if(i%2==0)res[k][i]=vrni(k1);
                else res[k][i]=vrni(k1^1);
            }
            else if((i/x)%2==0)res[k][i]=vrni(k1);
            else res[k][i]=t+(i/y)%2;
        }
        x=y;
    }
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...