Submission #805607

#TimeUsernameProblemLanguageResultExecution timeMemory
805607caganyanmaz죄수들의 도전 (IOI22_prison)C++17
65 / 100
10 ms1108 KiB
#include <bits/stdc++.h>
#include "prison.h"
using namespace std;

constexpr static int x = 24;

vector<vector<int>> devise_strategy(int n)
{
        vector<vector<int>> res = vector<vector<int>>(x+1, vector<int>(n+1));
        for (int i = x; i > 0; i--)
        {
                int bit = i / 2 + (i&1);
                res[i][0] = (bit&1)^1;
                for (int j = 1; j <= n; j++)
                {
                        if (((j>>bit)&1) == (i&1))
                        {
                                if (bit > 1)
                                        res[i][j] = (bit-1) * 2 - ((j>>(bit-1))&1);
                                else if (j&1)
                                        res[i][j] = res[i][0] - 2;
                                else
                                        res[i][j] = - 1 - res[i][0];

                        }
                        else if ((j>>bit)&1)
                        {
                                res[i][j] = res[i][0] - 2;
                        }
                        else
                        {
                                res[i][j] = - 1 - res[i][0];
                        }
                }
        }
        res[0][0] = 0;
        for (int i = 1; i <= n; i++)
                res[0][i] = 24 - ((i>>12)&1);
        return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...