Submission #1306381

#TimeUsernameProblemLanguageResultExecution timeMemory
1306381silentloopPrisoner Challenge (IOI22_prison)C++20
30 / 100
13 ms8456 KiB
#include <bits/stdc++.h>
#define ll long long
#define sz(x) int(x.size())
#define forn(i,n) for(i=0; i<n; i++)
#define all(x) x.begin(),x.end()
#define pb push_back
#define mp make_pair
#define fr first
#define se second
using namespace std;

vector<vector<int>>v;
ll n;

void calc(ll l, ll r, ll tip, ll sig, ll act, ll la, ll ra)
{
    if(l>r)
        return;
    v[act][0]=tip;
    ll i;
    for(i=r; i<=ra; i++)
        v[act][i]=-((!tip)+1);
    for(i=l; i>=la; i--)
        v[act][i]=-(tip+1);
    l++;
    r--;
    ll mid=((r-l+1)+2)/3;
    for(i=l; i<=l+mid-1; i++)
        v[act][i]=sig+1;
    for(i=l+mid; i<=l+mid*2-1; i++)
        v[act][i]=sig+2;
    for(i=l+mid*2; i<=r; i++)
        v[act][i]=sig+3;
    calc(l,l+mid-1,!tip,sig+3,sig+1,l-1,r+1);
    calc(l+mid,l+mid*2-1,!tip,sig+3,sig+2,l-1,r+1);
    calc(l+mid*2,r,!tip,sig+3,sig+3,l-1,r+1);
}

std::vector<std::vector<int>> devise_strategy(int N) {
    v.resize(50,vector<int>(N+1,0));
    n=N;

    calc(1,N,0,0,0,1,N);

  return {v};
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...