제출 #1210701

#제출 시각아이디문제언어결과실행 시간메모리
1210701qwusha죄수들의 도전 (IOI22_prison)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h> #include "prison.h" using namespace std; #define fi first #define se second typedef long long ll; typedef long double ld; mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count()); ll inf = 1e18; vector<vector<int>> devise_strategy(int n) { vector<vector<int>> s(40, vector<int>(n + 1)); for (int val = 0; val < 40; val++) { if (val % 3 == 0) { s[val][0] = 0; for (int x = 1; x <= n; x++) { int l = 1, r = 5001; int done = val / 3; for (int i = 0; i < done + 1; i++) { int mid = (l + r) / 2; if (i == done) { if (x < mid) { s[val][x] = 3 * done + 1; } else { s[val][x] = 3 * done + 2; } } else { if (x < mid) { r = mid; } else { l = mid; } } } } } else { s[val][0] = 1; for (int x = 1; x <= n; x++) { int l = 1, r = 5001; int done = val / 3; int typ = val % 3; s[val][x] = (done + 1) * 3; for (int i = 0; i < done + 1; i++) { int mid = (l + r) / 2; if (i == done) { if (x < mid) { if (typ == 2) { s[val][x] = -2; } } else { if (typ == 1) { s[val][x] = -1; } } } else { if (x < mid) { r = mid; } else { l = mid; } } } } } } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...