이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "prison.h"
using namespace std;
#define pb push_back
#define ll long long
#define fi first
#define se second
std::vector<std::vector<int>> devise_strategy(int N) {
vector<vector<int>> tab(40,vector<int> (N+1,0));
int n=N;
tab[0][0]=tab[37][0]=tab[38][0]=tab[39][0]=0;
for (int i = 1; i < n+1; ++i)
{
tab[0][i]=30+i/1000;
if(tab[0][i]==30) tab[0][i]=36;
tab[37][i]=(i%1000)/100;
if(tab[37][i]==0) tab[37][i]=10;
tab[38][i]=10+(i%100)/10;
if(tab[38][i]==10) tab[38][i]=20;
tab[39][i]=20+i%10;
if(tab[39][i]==20) tab[39][i]=30;
}
for (int i = 31; i <= 36; ++i)
{
int cur=i%10;
if(cur==6) cur=0;
tab[i][0]=1;
for (int j = 1; j < n+1; ++j)
{
if(j/1000>cur) tab[i][j]=-1;
else if(j/1000<cur) tab[i][j]=-2;
else tab[i][j]=37;
}
}
for (int i = 1; i <= 10; ++i)
{
tab[i][0]=1;
for (int j = 1; j < n+1; ++j)
{
if((j%1000)/100>i%10) tab[i][j]=-1;
else if((j%1000)/100<i%10) tab[i][j]=-2;
else tab[i][j]=38;
}
}
for (int i = 11; i <= 20; ++i)
{
tab[i][0]=1;
for (int j = 1; j < n+1; ++j)
{
if((j%100)/10>i%10) tab[i][j]=-1;
else if((j%100)/10<i%10) tab[i][j]=-2;
else tab[i][j]=39;
}
}
for (int i = 21; i <= 30; ++i)
{
tab[i][0]=1;
for (int j = 1; j < n+1; ++j)
{
if(j%10>i%10) tab[i][j]=-1;
else if(j%10<i%10) tab[i][j]=-2;
else tab[i][j]=-1;
}
}
return tab;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |