Submission #806197

#TimeUsernameProblemLanguageResultExecution timeMemory
806197LiudasPrisoner Challenge (IOI22_prison)C++17
30 / 100
23 ms2376 KiB
#include "prison.h" #include <cassert> #include <cstdio> #include <bits/stdc++.h> #include <string> #include <vector> using namespace std; static constexpr int kNumPrisoners = 500; vector<vector<int>> devise_strategy(int N){ int x = 60; vector<vector<int>> strat(x + 1, vector<int>(N+1)); for(int i = 0; i <= x; i ++){ if(i < 24){ strat[i][0] = 0; } else{ strat[i][0] = 1; } if(i < 24){ int bit = (i == 0 ? 12 : i % 12); for(int j = 1; j <= N; j ++){ if(((1 << bit) & j)){ strat[i][j] = 48 + bit; } else{ strat[i][j] = 24 + bit; } } } else{ int sett = i / 48; int bit = i - (24) * (1 + sett); for(int j = 1; j <= N; j ++){ if(((1 << bit) & j) && sett){ strat[i][j] = 12 + bit-1; } else if (!sett && ((1 << bit) & j)){ strat[i][j] = -1; } else if (sett && !((1 << bit) & j)){ strat[i][j] = -2; } else{ strat[i][j] = 12 + bit-1; } } } } return strat; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...