제출 #795805

#제출 시각아이디문제언어결과실행 시간메모리
795805ln_e죄수들의 도전 (IOI22_prison)C++17
41 / 100
15 ms1576 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho #include "prison.h" using ll=long long; using ld=long double; int const INF=1000000005; ll const LINF=1000000000000000005; ll const mod=1000000007; ld const PI=3.14159265359; ll const MAX_N=3e5+5; ld const EPS=0.00000001; #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #define f first #define s second #define pb push_back #define mp make_pair #define endl '\n' #define sz(a) (int)a.size() #define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); std::vector<std::vector<int>> devise_strategy(int N) { vector<vector<int>>ans; for(ll i=0;i<=36;i++) { vector<int>X; if(i==0){ X.pb(0); for(ll j=1;j<=N;j++){ if((1ll<<12)&j){ X.pb(24); }else { X.pb(12); } } ans.pb(X); }else { if(i<=24){ X.pb(1); ll bit=0; if(i<=12){ bit=i; }else { bit=i-12; } for(ll j=1;j<=N;j++) { if((1ll<<bit)&j){ if(i<=12){ X.pb(-1); }else X.pb(25+bit-1); }else if(i>12){ X.pb(-2); }else { X.pb(25+bit-1); } } ans.pb(X); }else { X.pb(0); ll bit=i-25; if(bit==0){ for(ll j=1;j<=N;j++){ if((1ll<<bit)&j){ X.pb(-2); }else X.pb(-1); } ans.pb(X); continue; } for(ll j=1;j<=N;j++) { if((1ll<<bit)&j){ X.pb(12+bit); }else { X.pb(bit); } } ans.pb(X); } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...