#include "insects.h"
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define fi first
#define se second
#define lf ((id<<1))
#define rg ((id<<1)|1)
#define md ((l+r)>>1)
using namespace std;
const int MAXN = 3e5+10;
const ll MOD = 1e9+2022;
ll sum(ll a, ll b){ return (a+b)%MOD;}
void chsum(ll &a, ll b){ a = (a+b)%MOD;}
ll mul(ll a, ll b){ return (a*b)%MOD; }
void chmul(ll &a, ll b){ a = (a*b)%MOD;}
void chmn(auto &a, auto b){ a = min(a, b); }
void chmx(auto &a, auto b){ a = max(a, b); }
int n, ANS;
bool ty[MAXN];
vector <int> all, dif; 
bool le = 1;
bool cek(int x){
	vector<int>vec;
	for(int i=0; i<n; i++){ // kalo ke kiri ambil all
		move_inside(i);
		if(press_button() == x+1){
			move_outside(i);
		} else vec.pb(i); // vec < all
	}
	for(auto in : vec) move_outside(in);
	if(dif.size() * x == vec.size()) return 1; // waduh tot * x
	return 0;
}
int min_cardinality(int N) {
	n = N; ANS = n;
	for(int i=0; i<n; i++){
		move_inside(i);
		if(press_button() == 1){
			dif.pb(i);
		}
		else move_outside(i);
	}
	for(auto in : dif) move_outside(in);
	for(int i=0; i<n; i++) all.pb(i);
	int l=1, r=n, mid=0, cnt=-1;
	while(l<=r){
		mid = (l+r)>>1;
		if(cek(mid)){
			le = 0;
			cnt = mid, l = mid+1;
		} else {
			le = 1; r = mid-1;
		}
	}
	return cnt;
	// for(int i=0; i<n; i++) vec.pb(i);
	// while(!vec.empty()){
	// 	for(auto in : vec) move_inside(in);
	// 	int mx = press_button();
	// 	chmn(ANS, mx);
	// 	for(auto in : vec) move_outside(in);
	// 	for(int i=0; i<n; i++) ty[i] = 0;
	// 	vector<int> idx;
	// 	for(auto in : vec){
	// 		if(ty[in]) continue;
	// 		move_outside(in);
	// 	}
	// 	for(auto in : idx) move_inside(in); // penting aj
	// 	for(auto in : vec){
	// 		if(ty[in]) continue;
	// 		move_inside(in);
	// 		if(press_button() == 2) ty[in] = 1; // max
	// 		move_outside(in);
	// 	}
	// 	vector<int> vec2;
	// 	for(auto in : vec){
	// 		if(ty[in]) continue;
	// 		vec2.pb(in);
	// 	}
	// 	swap(vec, vec2);
	// }
	// return ANS;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |