#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;
vector<int>vec;
bool ty[MAXN];
int min_cardinality(int N) {
n = N; ANS = n;
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(int i=0; i<vec.size(); i++){
move_inside(vec[i]);
if(press_button() == mx){
ty[vec[i]] = 1;
idx.pb(vec[i]); move_outside(vec[i]);
// tandain ini paling kanan dr typenya
}
}
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... |