# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1124175 | epicci23 | Rarest Insects (IOI22_insects) | C++17 | 0 ms | 0 KiB |
#include "insects.h"
#include "bits/stdc++.h"
using namespace std;
vector<int> v;
int D;
void Clear(){
while(!v.empty()){
move_outside(v.back());
v.pop_back();
}
}
int min_cardinality(int n){
v.push_back(0);
move_inside(0);
for(int i=1;i<n;i++){
v.push_back(i);
move_inside(i);
int u = press_button();
if(u == 1) continue;
move_outside(i);
v.pop_back();
}
D = v.size();
if(D > n / 2) return 1;
int _n = n;
while(1){
int B = _n / D;
Clear();
for(int i=0;i<=B;i++){
v.push_back(i);
move_inside(i);
}
for(int i=B+1;i<n;i++){
v.push_back(i);
move_inside(i);
int u = press_button();
if(u > B){
move_outside(i);
v.pop_back();
}
}
if(sz(v) == B * D) return B;
_n = sz(v);
}
}