Submission #1212477

#TimeUsernameProblemLanguageResultExecution timeMemory
1212477vivkostovPrisoner Challenge (IOI22_prison)C++20
65 / 100
8 ms1860 KiB
#include "prison.h"
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>>otg;
vector<int>v;
int n;
void prec()
{
    for(int i=0;i<=24;i++)
    {
        otg.push_back(v);
    }
    otg[0].push_back(0);
    for(int i=1;i<=24;i++)
    {
        otg[i].push_back(((i+1)/2)%2);
    }
}
void fil(int ind)
{
    int bit,st,bag=otg[ind][0]+1;
    for(int i=1;i<=n;i++)
    {
        bit=1<<(12-(ind-1)/2);
        if(ind)
        {
            if(i&bit&&ind%2==1)
            {
                otg[ind].push_back(-((bag%2)+1));
                continue;
            }
            if(!(i&bit)&&ind%2==0)
            {
                otg[ind].push_back(-bag);
                continue;
            }
            bit=bit/2;
        }
        st=i&bit;
        if(st)st=2;
        else st=1;
        if(ind==23||ind==24)
        {
            if(st==2)otg[ind].push_back(-((bag%2)+1));
            else otg[ind].push_back(-bag);
            continue;
        }
        otg[ind].push_back(ind+ind%2+st);
    }
}
vector<vector<int>> devise_strategy(int N)
{
    n=N;
    prec();
    for(int i=0;i<=24;i++)
    {
        fil(i);
    }
    /*for(int i=0;i<=24;i++)
    {
        cout<<i<<" | ";
        for(int j=0;j<otg[i].size();j++)
        {
            cout<<otg[i][j]<<" ";
        }
        cout<<endl;
    }*/
    return otg;
    //return {std::vector<int>(N + 1, 0)};
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...