Submission #1221386

#TimeUsernameProblemLanguageResultExecution timeMemory
1221386totoro죄수들의 도전 (IOI22_prison)C++20
48.50 / 100
43 ms1348 KiB
#include "prison.h" #include <vector> std::vector<int> ternary(int x) { std::vector<int> ans; for (int trit = 0; trit < 8; ++trit) { ans.push_back(x % 3); x /= 3; } return ans; } std::vector<std::vector<int>> devise_strategy(int N) { std::vector<std::vector<int>> strategy(32, std::vector<int>(N + 1)); for (int val = 0; val < 32; ++val) { int tritnum = 7 - val / 4; int state = val % 4; if (state == 0) { strategy[val][0] = 0; for (int inbaga = 1; inbaga <= N; ++inbaga) { strategy[val][inbaga] = 4 * (val / 4) + 1 + ternary(inbaga)[tritnum]; } } else { strategy[val][0] = 1; for (int inbagb = 1; inbagb <= N; ++inbagb) { int tritval = ternary(inbagb)[tritnum]; if (tritval > state - 1) { // B is bigger strategy[val][inbagb] = -1; } else if (tritval < state - 1) { // A is bigger strategy[val][inbagb] = -2; } else { // recurse strategy[val][inbagb] = ((val / 4 + 1) * 4) % 32; } } } } return strategy; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...