Submission #980323

#TimeUsernameProblemLanguageResultExecution timeMemory
980323sleepntsheepPrisoner Challenge (IOI22_prison)C++17
65 / 100
10 ms1220 KiB
#include "prison.h" //#include<cstdio> #include <vector> std::vector<std::vector<int>> devise_strategy(int N) { constexpr int B = 3, X = 24; std::vector<std::vector<int> > s(X+1, std::vector<int>(N+1)); auto get = [&](int x, int i) { while(i--) x/=B; return x%B; }; auto write = [&](int at,int j,int x) { s[at][j] = x; }; write(0, 0, 0); for(int i=1;i<=N;++i) { int d=get(i, 7); write(0, i, 1+7*B+d); } for(int read=1;read<=X;++read) { auto write_ = [&](int j,int x) { write(read,j,x); }; int at=(read-1)/B; int dd=(read-1)%B; int turn=at%2==1 ? 'B':'A'; if(turn=='B') write_(0, 1); else write_(0, 0); for(int i=1;i<=N;++i) { int ee=get(i,at); int ff=at>0?get(i,at-1):3; if(ee==dd) write_(i, 1+(at-1)*B+ff); else { if(turn == 'B') write_(i, ee>dd?-1:-2); else write_(i, ee>dd?-2:-1); } } } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...