| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1325087 | eri16 | Prisoner Challenge (IOI22_prison) | C++20 | 1 ms | 332 KiB |
#include<bits/stdc++.h>
#include "prison.h"
using namespace std;
vector<vector<int>> devise_strategy (int n){vector<vector<int>> ans(27, vector<int>(n+1));
ans[0][0]=0;
for (int i=1; i<=n; i++){
if (i<=2500){ans[0][i]=1;}
if (i>2500){ans[0][i]=2;}
}
//0 / 1,2 / 3,4
for (int i=1; i<=26; i++){
if (((i-1)/2)%2==0){ans[i][0]=1;}
else{ans[i][0]=0;}
for (int j=1; j<=n; j++){
int l=1;
int r=5000;
int depth = (i-1)/2;
while (depth--){
int m = (l+r)/2;
if (j<=m){r=m;}
if (j>m){l=m+1;}
}
int st1 = (i-1)%2;
int st2;
int m = (l+r)/2;
if (j<=m){st2=0;r=m;}
else{st2=1;l=m+1;}
if (st1!=st2){
if (st2>st1){ans[i][j]=(2-ans[i][0])*-1;}
else{ans[i][j]=(ans[i][0]+1)*-1;}
}
else{
int m = (l+r)/2;
if (j<=m){st2=0;}
else{st2=1;}
ans[i][j]=((i-1)/2+1)*2+1+st2;
}
}
}
return ans;
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
