#include "prison.h"
#include <bits/stdc++.h>
using namespace std;
int kth(int x, int k) {
k = 3-k;
while (k--) x/=10;
return x%10;
}
const int X = 39;
std::vector<std::vector<int>> devise_strategy(int N) {
vector s(X+1, vector<int>(N+1));
for (int i=0; i<=3; i++) s[i][0] = 0;
for (int i=4; i<=X; i++) s[i][0] = 1;
for (int j=1; j<=N; j++) s[0][j] = kth(j, 0) + 4;
for (int i=1; i<=3; i++) for (int j=1; j<=N; j++) s[i][j] = 10*i + kth(j, i);
for (int i=4; i<=9; i++) for (int j=1; j<=N; j++) {
if (i-4 < kth(j, 0)) s[i][j] = -1;
else if (i-4 == kth(j, 0)) s[i][j] = 1;
else if (i-4 > kth(j, 0)) s[i][j] = -2;
}
for (int i=10; i<=X; i++) for (int j=1; j<=N; j++) {
if (i%10 < kth(j, i/10)) s[i][j] = -1;
else if (i%10 == kth(j, i/10)) s[i][j] = i/10 + 1;
else if (i%10 > kth(j, i/10)) s[i][j] = -2;
}
// cout << "\t";
// for (int i=0; i<=N; i++) cout << i << "\t";
// cout << "\n";
// for (int i=0; i<=X; i++) {
// cout << i << "\t";
// for (int j=0; j<=N; j++) cout << s[i][j] << "\t";
// cout << "\n";
// }
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... |