Submission #847071

#TimeUsernameProblemLanguageResultExecution timeMemory
847071NeroZeinRarest Insects (IOI22_insects)C++17
0 / 100
34 ms344 KiB
#include "insects.h" #include "bits/stdc++.h" using namespace std; int min_cardinality(int N) { int distinct = 0; vector<bool> inserted(N); for (int i = 0; i < N; ++i) { move_inside(i); int most_freq = press_button(); if (most_freq > 1) { move_outside(i); } else { inserted[i] = true; distinct++; } } vector<bool> bad(N); int l = 1, r = N / distinct; while (l < r) { int mid = (l + r + 1) / 2; int cnt = accumulate(inserted.begin(), inserted.end(), 0); for (int i = 0; i < N; ++i) { if (inserted[i] || bad[i]) { continue; } move_inside(i); int most_freq = press_button(); if (most_freq > mid) { move_outside(i); } else { inserted[i] = true; cnt++; } } if (cnt == distinct * mid) {//we don't care about inserted ones anymore l = mid; } else {//we only care about inserted r = mid - 1; for (int i = 0; i < N; ++i) { if (!inserted[i]) { bad[i] = true; } } } } return l; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...