#include "insects.h"
#include <bits/stdc++.h>
using namespace std;
const int C = 30;
int min_cardinality(int N)
{
vector<int> in;
for (int i = 0; i < N; i++)
{
move_inside(i);
if (press_button() == 2)
move_outside(i);
else
in.push_back(i);
}
int k = in.size();
for (int i : in)
move_outside(i);
in.clear();
if (k <= C)
{
vector<int> all;
for (int i = 0; i < N; i++)
all.push_back(i);
int ans = N;
while (!all.empty())
{
vector<int> rem;
int cur = 0;
while (!all.empty())
{
int i = all.back();
all.pop_back();
move_inside(i);
int res = press_button();
if (res == cur)
{
move_outside(i);
rem.push_back(i);
}
else
in.push_back(i);
cur = res;
}
ans = min(ans, cur);
all = rem;
for (int IN : in)
move_outside(IN);
in.clear();
}
return ans;
}
else
{
int ans = 0;
vector<int> all;
for (int i = 0; i < N; i++)
all.push_back(i);
while (true)
{
vector<int> rem;
for (int i : all)
{
move_inside(i);
if (press_button() == 2)
move_outside(i), rem.push_back(i);
else
in.push_back(i);
}
if (in.size() != k)
return ans;
ans++;
for (int i : in)
move_outside(i);
in.clear();
all = rem;
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |