#include "insects.h"
#include<bits/stdc++.h>
#define f0r(i,n) for(int i = 0; i<n; i++)
#define vi vector<int>
#define vb vector<bool>
#define pb push_back
using namespace std;
int min_cardinality(int N) {
vb in(N);
f0r(i, N){
move_inside(i);
in[i] = 1;
int x = press_button();
if(x > 1){
move_outside(i);
in[i] = 0;
}
}
int d = 0;
f0r(i, N){
if(in[i])d++;
}
int lo = 1;
int hi = N/d+1;
while(lo < hi){
int mid = lo + (hi - lo + 1) / 2;
vi lst;
f0r(i, N){
if(!in[i]){
move_inside(i);
in[i] = 1;
}
int x = press_button();
if(x > mid){
move_outside(i);
in[i] = 0;
}
else{
lst.pb(i);
}
}
int cnt = 0;
f0r(i, N){
if(in[i])cnt++;
}
if(cnt == d * mid){
lo = mid;
}
else{
hi = mid - 1;
for(auto u : lst){
move_outside(u);
in[u] = 0;
}
}
}
return lo;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |