#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] = -2;
            else 
            s[B][A] = -1;
            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... |