Submission #727880

#TimeUsernameProblemLanguageResultExecution timeMemory
727880aykhnPrisoner Challenge (IOI22_prison)C++17
30 / 100
30 ms1956 KiB
#include <bits/stdc++.h>
#include "prison.h"


using namespace std;

typedef long long ll;

#define OPT ios_base::sync_with_stdio(0); \
            cin.tie(0); \
            cout.tie(0)
#define pii pair<int,int>
#define pll pair<ll,ll>
#define all(v) v.begin(), v.end()
#define mpr make_pair
#define pb push_back
#define ts to_string
#define fi first
#define se second
#define inf 0x3F3F3F3F
#define infll 0x3F3F3F3F3F3F3F3FLL
#define bpc __builtin_popcount
#define print(v) for(int i = 0; i < v.size(); i++) cout << v[i] << " "; cout<<endl;

vector<vector<int>> devise_strategy(int n)
{
    vector<vector<int>> s(50, vector<int> (n + 1, 0));

    s[0][0] = 0;
    for (int i = 1; i <= n; i++)  s[0][i] = 40 + i/1000;

    for (int i = 40; i <= 49; i++)
    {
        s[i][0] = 1;
        for (int j = 1; j <= n; j++)
        {
            if (j/1000 < i%10) s[i][j] = -2;
            else if (j/1000 > i%10) s[i][j] = -1;
            else s[i][j] = 30 + j/100%10;
        }
    }

    for (int i = 30; i <= 39; i++)
    {
        s[i][0] = 0;
        for (int j = 1; j <= n; j++)
        {
            if (j/100%10 < i%10) s[i][j] = -1;
            else if (j/100%10 > i%10) s[i][j] = -2;
            else s[i][j] = 20 + j/10%10;
        }
    }

    for (int i = 20; i <= 29; i++)
    {
        s[i][0] = 1;
        for (int j = 1; j <= n; j++)
        {
            if (j/10%10 < i%10) s[i][j] = -2;
            else if (j/10%10 > i%10) s[i][j] = -1;
            else s[i][j] = 10 + j%10;
        }
    }

    for (int i = 10; i <= 19; i++)
    {
        s[i][0] = 0;
        for (int j = 1; j <= n; j++)
        {
            if (j%10 < i%10) s[i][j] = -1;
            else if (j%10 > i%10) s[i][j] = -2;
            else s[i][j] = j%10;
        }
    }
    
    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...