Submission #1223016

#TimeUsernameProblemLanguageResultExecution timeMemory
1223016jakobrsRarest Insects (IOI22_insects)C++20
0 / 100
98 ms408 KiB
#include <algorithm> #include <numeric> #include <iostream> #include <set> #include <vector> void move_inside(int i); void move_outside(int i); int press_button(); int min_cardinality(int N) { std::set<int> included{}; std::vector<int> used{}; for (int i = 0; i < N; i++) used.push_back(i); auto eval = [&](int m) -> int { for (int x : used) { if (included.contains(x)) continue; move_inside(x); if (press_button() > m) move_outside(x); else included.insert(x); } return included.size(); }; auto k = eval(1); for (auto x : included) move_outside(x); included.clear(); int l = 1; int r = N/k + 1; bool filled = false; while (r - l > 1) { auto m = l + (r - l) / 3; // auto m = (l + r) / 2; if (filled) { used.clear(); for (auto x : included) { used.push_back(x); move_outside(x); } included.clear(); } if (eval(m) == k * m) { l = m; filled = false; } else { r = m; filled = true; } } return l; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...