Submission #628365

#TimeUsernameProblemLanguageResultExecution timeMemory
628365GullesnuffsRarest Insects (IOI22_insects)C++17
10 / 100
396 ms420 KiB
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;

#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;

pair<int, vector<int>> check(vector<int> remaining, int target_h) {
	vector<int> new_remaining;
	int num_different = 0;
	for (int x : remaining) {
		move_inside(x);
		if (press_button() <= target_h) {
			++num_different;
		} else {
			move_outside(x);
			new_remaining.push_back(x);
		}
	}
	return make_pair(num_different, new_remaining);
}

int min_cardinality(int N) {
	vector<int> remaining;
	rep(i,0,N)
		remaining.push_back(i);
	int num_different;
	for (int target_h = 1; true; target_h++) {
		auto res = check(remaining, target_h);
		remaining = res.second;
		if (target_h == 1)
			num_different = res.first;
		else if (res.first != num_different) {
			return target_h - 1;
		}
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...