Submission #907607

#TimeUsernameProblemLanguageResultExecution timeMemory
907607vjudge1Prisoner Challenge (IOI22_prison)C++17
0 / 100
1 ms428 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() #define F first #define S second #define pb push_back typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; const int BITS = 2; const int A = -1; const int B = -2; int id(int bit, int state){ if(bit==-1) return 0; bit=BITS-bit; return bit*2-state; } std::vector<std::vector<int>> devise_strategy(int N) { vector<vi> strat(2*BITS+1, vi(N+1)); for(int b = BITS; b>=0; b--){ rep(s,0,2){ strat[id(s,b)][0] = b%2; if(b==BITS && s==1) continue; rep(o,1,N+1){ if(o&(1<<b)){ if(s){ strat[id(b,s)][o]=id(b-1,1); }else{ strat[id(b,s)][o]=b%2==0?A:B; } }else{ if(s){ strat[id(b,s)][o]=b%2==0?B:A; }else{ strat[id(b,s)][o]=id(b-1,0); } } } } } // rep(i,0,sz(strat)){ // cout<<i<<": "; // rep(j,0,sz(strat[i])) cout << strat[i][j]<<' '; // cout<<endl; // } return strat; } // int main(){ // devise_strategy(5000); // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...