제출 #1223747

#제출 시각아이디문제언어결과실행 시간메모리
1223747trimkus죄수들의 도전 (IOI22_prison)C++20
0 / 100
12 ms24132 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; std::vector<std::vector<int>> devise_strategy(int N) { vector<vector<int>> res(1, vector<int>(N + 1)); res[0][1] = -1; res[0][N] = -2; int jump = 100; auto dfs = [&](auto& dfs, int i, int till, int idx) -> void { vector<int> add(N + 1); add[0] = idx; for (int j = 1; j <= i; ++j) { add[j] = (idx ? -2 : -1); } for (int j = till; j <= N; ++j) { add[j] = (idx ? -1 : -2); } for (int j = i + 1; j < till; ++j) { add[j] = res.size() + 1; } res.push_back(add); if (i + 1 < till) { int mid = (i + till) / 2; dfs(dfs, i, mid, idx ^ 1); dfs(dfs, mid + 1, till, idx ^ 1); } }; for (int i = 2; i < N; i += jump) { int till = min(N - 1, i + jump - 1); for (int j = i; j <= till; ++j) { res[0][j] = res.size(); } dfs(dfs, i, till, 1); } // for (auto& v : res) { // for (auto& u : v) { // cerr << u << " "; // } // cerr << "\n"; // } // cerr << "\n"; return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...