Submission #736748

#TimeUsernameProblemLanguageResultExecution timeMemory
736748jk410Rarest Insects (IOI22_insects)C++17
0 / 100
67 ms208 KiB
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;
int n, ret0;
bool used[2000],check[2000][2];
int mySolve[2001];
int solve(int x) {
	int& ret = mySolve[x];
	if (ret != -1)
		return ret;
	ret = ret0;
	for (int i = 0; i < n; i++) {
		if (check[i][0] || check[i][1])
			continue;
		move_inside(i);
		used[i] = true;
		if (press_button() > x) {
			used[i] = false;
			move_outside(i);
		}
		if (used[i])
			ret++;
	}
	return ret;
}
int min_cardinality(int _n) {
	n = _n;
	memset(mySolve, -1, sizeof(mySolve));
	int cnt = solve(1);
	int l = 1, r = n / cnt, ans;
	while (l <= r) {
		int m = (l + r) >> 1;
		if (solve(m) == cnt * m) {
			ret0 = cnt * m;
			for (int i = 0; i < n; i++) {
				if (used[i])
					check[i][0] = true;
			}
			ans = m;
			l = m + 1;
		}
		else {
			for (int i = 0; i < n; i++) {
				if (!used[i])
					check[i][1] = true;
				if (used[i] && !check[i][0]) {
					used[i] = false;
					move_outside(i);
				}
			}
			r = m - 1;
		}
	}
	return ans;
}

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:54:9: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   54 |  return ans;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...