Submission #1225643

#TimeUsernameProblemLanguageResultExecution timeMemory
1225643LeonidCuk죄수들의 도전 (IOI22_prison)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h> #include "prison.h" using namespace std; int n,nmax=0; vector<vector<int>>res; int vrni(int a) { if(a==0)return -1; else return -2; } void ajmo(int k,int l,int r,int k1) { if(l>=r)return; nmax=max(nmax,k+3); res[k+1][0]=k1; res[k+2][0]=k1; int m=(l+r)/2; for(int i=m+1;i<=r;i++) { res[k+1][i]=vrni(k1^1); } for(int i=l;i<=m;i++) { res[k+2][i]=vrni(k1); } int m1=(l+m)/2; for(int i=l;i<=m1;i++)res[k+1][i]=k+3; for(int i=m1+1;i<=m;i++)res[k+1][i]=k+4; m1=(m+1+r)/2; for(int i=m+1;i<=m1;i++)res[k+2][i]=k+3; for(int i=m1+1;i<=r;i++)res[k+2][i]=k+4; ajmo(k+2,l,m,k1^1); ajmo(k+2,m+1,r,k1^1); } vector<vector<int>>devise_strategy(int N) { n=N; int x=n; res.resize(30,vector<int>(n+1)); res[0][0]=0; res[1][0]=1; res[2][0]=1; res[1][1]=-2; res[1][n]=-1; res[2][1]=-2; res[2][n]=-1; x=(n-1+2)/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; } ajmo(0,2,n-1,1); if(n==3)res[0][2]=1; while(res.size()!=nmax)res.pop_back(); return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...