Submission #826157

#TimeUsernameProblemLanguageResultExecution timeMemory
826157LittleCubeRarest Insects (IOI22_insects)C++17
39.06 / 100
271 ms436 KiB
#include "insects.h" #include <bits/stdc++.h> #define ll long long using namespace std; const double r = 0.45; 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 * (1.0 - r) + R * r; 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); } int g = out.size(); 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()) { if (g == 1) return large.size(); L = k + 1, R = min(R, (int)remain.size() / g); } 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...