Submission #825836

#TimeUsernameProblemLanguageResultExecution timeMemory
825836LittleCubeRarest Insects (IOI22_insects)C++17
0 / 100
1 ms208 KiB
#include "insects.h" #include <bits/stdc++.h> #define ll long long using namespace std; const double r = 0.5; int min_cardinality(int N) { vector<int> remain; int M = N, L = 1, R = N; /* Choose k: ans <= k -> R = k ans > k -> L = k + 1, M -= k */ for (int i = 0; i < N; i++) remain.emplace_back(i); while (L < R) { int k = (L + R) / 2; vector<int> small, large, tmp; for (int i : remain) { move_inside(i); if (press_button() > k) { move_outside(i); large.emplace_back(i); } else small.emplace_back(i); } int big = !large.empty(); remain.clear(); for (auto i : small) move_outside(i); for (auto i : large) { move_inside(i); if (press_button() == 2) move_outside(i); else tmp.emplace_back(i); } for (auto i : small) { move_inside(i); if (press_button() == 2) large.emplace_back(i); else remain.emplace_back(i); move_outside(i); } for (auto i : tmp) move_outside(i); if (big) remain = large, L = k + 1; else R = k; } return L; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:11:9: warning: unused variable 'M' [-Wunused-variable]
   11 |     int M = N, L = 1, R = N;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...