Submission #1058344

#TimeUsernameProblemLanguageResultExecution timeMemory
1058344aykhnRarest Insects (IOI22_insects)C++17
99.78 / 100
41 ms856 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; int min_cardinality(int N) { vector<int> ord(N, 0); iota(ord.begin(), ord.end(), 0); random_shuffle(ord.begin(), ord.end()); int uni = 0; vector<int> v; for (int i = 0; i < N; i++) { move_inside(i); if (press_button() > 1) move_outside(i); else uni++, v.push_back(i); } for (int &i : v) move_outside(i); v.clear(); vector<int> in(N, 0); vector<int> alive(N, 1); int l = 1, r = N / uni; int cur = 0; while (l < r) { int mid = (l + r + 1) >> 1; for (int &i : ord) { if (!alive[i]) continue; move_inside(i); v.push_back(i); cur++; in[i] = 1; if (press_button() > mid) { cur--; in[i] = 0; move_outside(i); v.pop_back(); } } if (cur != mid * uni) { for (int i = 0; i < N; i++) { if (!in[i]) alive[i] = 0; } for (int &i : v) { cur--; move_outside(i), in[i] = 0; } v.clear(); r = mid - 1; } else { for (int &i : v) { alive[i] = 0; in[i] = 0; } v.clear(); l = mid; } } return l; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...