# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
827123 | Amylopectin | Rarest Insects (IOI22_insects) | C++17 | 50 ms | 432 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "insects.h"
#include <stdio.h>
#include <iostream>
#include <vector>
using namespace std;
const int mxn = 5e3 + 10;
int io[mxn] = {},nop[mxn] = {};
vector<int> cro,fno;
int min_cardinality(int n)
{
int i,j,cn,cm,fn,fm,cou = 0,cl,cr,mid,ndif,of;
move_inside(0);
io[0] = 1;
cou ++;
for(i=1; i<n; i++)
{
move_inside(i);
cou ++;
io[i] = 1;
cn = press_button();
if(cn == 2)
{
move_outside(i);
io[i] = 0;
cou --;
}
}
cl = 1;
cr = n / cou;
ndif = cou;
of = 0;
while(cl < cr)
{
mid = (cl+cr) / 2 + (cl+cr) % 2;
cro.clear();
fno.clear();
for(i=0; i<n; i++)
{
if(io[i] == 0 && nop[i] == 0)
{
move_inside(i);
cou ++;
io[i] = 1;
cn = press_button();
if(cn > mid)
{
fno.push_back(i);
move_outside(i);
io[i] = 0;
cou --;
}
else
{
cro.push_back(i);
}
if(mid * ndif == cou)
{
break;
}
}
}
if(mid * ndif == cou)
{
cl = mid;
of = 0;
}
else
{
for(i=0; i<fno.size(); i++)
{
nop[fno[i]] = 1;
}
if(of == 1)
{
move_outside(cro[0]);
io[cro[0]] = 0;
cou --;
}
for(i=1; i<cro.size(); i++)
{
// if(io[i] == 1)
// {
move_outside(cro[i]);
io[cro[i]] = 0;
cou --;
// }
}
of = 1;
cr = mid-1;
}
}
return cl;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |