Submission #956894

#TimeUsernameProblemLanguageResultExecution timeMemory
956894n1kRarest Insects (IOI22_insects)C++17
47.51 / 100
131 ms1768 KiB
#include "insects.h"
#include <bits/stdc++.h>

using namespace std;

int n;

int min_cardinality(int N) {
	n = N;

	vector<int> v;
	set<int> in, out;

	for(int i=0; i<n; i++){
		move_inside(i);
		v.push_back(i);
		if(press_button()>=2){
			move_outside(i);
			v.pop_back();
			out.insert(i);
		}
	}

	int lb = 0, rb = n / v.size();
	while(lb<rb){
		int mb = (lb+rb+1)/2;
		for(auto x:out){
			move_inside(x);
			in.insert(x);
			if(press_button()>mb+1){
				move_outside(x);
				in.extract(x);
			}
		}

		if(v.size()*mb==in.size()){
			lb=mb;
		}else{
			rb=mb-1;
			for(auto x:in){
				move_outside(x);
				out.insert(x);
			}
			in.clear();
		}
	}

	return lb+1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...