Submission #825851

#TimeUsernameProblemLanguageResultExecution timeMemory
825851LittleCubeRarest Insects (IOI22_insects)C++17
37.50 / 100
227 ms500 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, out; for (int i : remain) { move_inside(i); if (press_button() > k) { move_outside(i); large.emplace_back(i); } else small.emplace_back(i); } for (auto i : small) move_outside(i); if (large.empty()) R = k; else { for (auto i : large) { move_inside(i); if (press_button() == 2) move_outside(i); else out.emplace_back(i); } for (auto i : small) { move_inside(i); if (press_button() == 2) large.emplace_back(i); else tmp.emplace_back(i); move_outside(i); } for (auto i : out) move_outside(i); if (tmp.empty()) L = k + 1; else remain = tmp, 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...