Submission #625496

#TimeUsernameProblemLanguageResultExecution timeMemory
625496jeroenodbPrisoner Challenge (IOI22_prison)C++17
10 / 100
6 ms592 KiB
#include "prison.h" #include <array> #include <vector> using namespace std; std::vector<std::vector<int>> devise_strategy(int N) { array<int,5> dig = {2,2,5,5,5}; array<int,5> pw = {1,0,0,0,0}; for(int i=1;i<5;++i) pw[i]=pw[i-1]*dig[i-1]; auto extractDig = [&](int n, int i) { n/=pw[i]; return n%dig[i]; }; auto endResult = [&](int dif) { if(dif<=0) return -2; else return -1; }; vector<vector<int>> res; for(int i=4;i>=1;--i) { // if(pw[i]>=N) continue; int at = res.size(); // before vector<int> cur(N+1); for(int a=0;a<N;++a) { cur[a+1] = at+1+extractDig(a,i); } res.push_back(cur); for(int d=0;d<dig[i];++d) { cur[0]=1; for(int b=0;b<N;++b) { if(extractDig(b,i)!=d) { cur[b+1] = endResult(extractDig(b,i)-d); } else if(i==1) { cur[b+1] = endResult(b&1); } else { cur[b+1] = at+dig[i]+1; } } res.push_back(cur); } } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...