이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "prison.h"
#include<bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define all(x) x.begin(),x.end()
typedef long long ll;
#define pb push_back
#define INF 9999999999999999
vector<vector<int>> devise_strategy(int N) {
vector<vector<int>>s(N/1000+2 + 10 + 10 + 10,vector<int>(N+1,0));
s[0][0]=0;
for(int i=1;i<=N;i++)
{
s[0][i]=i/1000+1;
}
ll id=0;
for(int i=1;i<=N/1000+1;i++)
{
s[i][0]=1;
for(int j=1;j<=N;j++)
{
s[i][j]=((j/1000+1<i)?-2:-1);
if(j/1000+1==i)
s[i][j]=N/1000+2+(j%1000)/100;
}
}
id=N/1000+2;
for(int i=id;i<id+10;i++)
{
s[i][0]=0;
for(int j=1;j<=N;j++)
{
s[i][j]=(((j%1000)/100<i-id)?-1:-2);
if((j%1000)/100==i-id)
s[i][j]=id+10+(j%100)/10;
}
}
id+=10;
for(int i=id;i<id+10;i++)
{
s[i][0]=1;
for(int j=1;j<=N;j++)
{
s[i][j]=(((j%100)/10<i-id)?-2:-1);
if((j%100)/10==i-id)
s[i][j]=id+10+j%10;
}
}
id+=10;
for(int i=id;i<id+10;i++)
{
s[i][0]=0;
for(int j=1;j<=N;j++)
s[i][j]=((j%10<i-id)?-1:-2);
}
return s;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |