#include <bits/stdc++.h>
using namespace std;
const int x = 70;
vector<vector<int>> devise_strategy(int N) {
vector<vector<int>> s(x+1, vector<int>(N+1));
s[0][0] = 0;
for (int A = 1; A <= N; A++) {
s[0][A] = (A/1000)+1;
}
// milliers
for (int A = 1; A <= 10; A++) {
s[A][0] = 1;
int B = 1;
while (B <= N) {
if (A > ((B/1000)%10)+1)
s[A][B] = -2;
else if (A == ((B/1000)%10)+1)
s[A][B] = ((B/100)%10)+11;
else
s[A][B] = -1;
B++;
}
}
// centaines
for (int B = 11; B <= 20; B++) {
s[B][0] = 0;
int A = 1;
while (A <= N) {
if (B > ((A/100)%10)+11)
s[B][A] = -1;
else if (B == ((A/100)%10)+11)
s[B][A] = ((A/10)%10)+21;
else
s[B][A] = -2;
A++;
}
}
// dizaines
for (int A = 21; A <= 30; A++) {
s[A][0] = 1;
int B = 1;
while (B <= N) {
if (A > ((B/10)%10)+21)
s[A][B] = -2;
else if (A == ((B/10)%10)+21)
s[A][B] = (B%10)+31;
else
s[A][B] = -1;
B++;
}
}
// unites
for (int B = 31; B <= 40; B++) {
s[B][0] = 0;
int A = 1;
while (A <= N) {
if (B > (A%10)+31)
s[B][A] = -1;
else
s[B][A] = -2;
A++;
}
}
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... |