Submission #938375

#TimeUsernameProblemLanguageResultExecution timeMemory
938375Trisanu_DasPrisoner Challenge (IOI22_prison)C++17
80 / 100
16 ms1056 KiB
#include <bits/stdc++.h> #include "prison.h" using namespace std; int cmp(int a, int b) { return a == b ? -1 : a > b; } vector <vector <int>> devise_strategy(int N) { vector <int> b = {1, 3, 3, 3, 3, 3, 3, 2, 2, 2}; vector <int> suff(10); suff[9] = 1; for (int i = 8; i >= 0; i--) suff[i] = suff[i + 1] * b[i + 1]; int ptr = 1, sofar = 0; vector <vector <int>> strat(23, vector <int> (N + 1)); for (int i = 0; i < 23; i++) { for (; sofar < i; ptr++) sofar += b[ptr]; strat[i][0] = ptr & 1; for (int j = 1; j <= N; j++) { int tmp = cmp(j / suff[ptr - 1] % b[ptr - 1], sofar - i); if (tmp == -1 && ptr == 9) tmp = j & 1; strat[i][j] = tmp == -1 ? sofar + b[ptr] - j / suff[ptr] % b[ptr] : -(tmp ^ strat[i][0]) - 1; } } return strat; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...