제출 #1216398

#제출 시각아이디문제언어결과실행 시간메모리
1216398ASGA_RedSea죄수들의 도전 (IOI22_prison)C++20
38 / 100
11 ms1608 KiB
/**

                                    * بسم الله الرحمن الرحيم *

                ﴾ رَبِّ اشْرَحْ لِي صَدْرِي * وَيَسِّرْ لِي أَمْرِي * وَاحْلُلْ عُقْدَةً مِّن لِّسَانِي * يَفْقَهُوا قَوْلِي ﴿

*/

/// author : "ASGA"

#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

using namespace std;
using ll=long long;

#include"prison.h"




vector<vector<int>>devise_strategy(int n){
    int x=(__lg(n)+1)*3-1;

    vector<vector<int>>a(x+1,vector<int>(n+1));

    int b=__lg(n)+1,c=0;
    for(int i=0;i<=x;i+=2){
        array<int,2>rt={-1,-2};

        a[i][0]=c;

        if(c==0){
            b--;
            for(int j=1;j<=n;j++)a[i][j]=i+1+((j>>b)&1);
            i--;
        }
        else{
            a[i+1][0]=c;

            for(int j=1;j<=n;j++){
                int bt=(j>>b)&1;

                a[i][j]=(bt?rt[c^1]:i+2);
                a[i+1][j]=(bt?i+2:rt[c]);
            }
        }

        c^=1;
    }

    for(auto&i:a)for(int&j:i)j=min(j,x);

    return a;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...