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<bits/stdc++.h>
#include "insects.h"
using namespace std;
bool zaj[2009];
int min_cardinality(int n)
{
int r=0;
vector<int>U;
for(int i=0;i<n;i++)
{
move_inside(i);
int u=press_button();
if(u>1)
{
move_outside(i);
U.push_back(i);
}
else
{
zaj[i]=1;
r++;
}
}
int w=1;
if((int)U.size()==0){return w;}
while(true)
{
if((int)U.size()<r){return w;}
int d=(((int)(U.size()+r-1)/r+1)/2);
/**cout<<"r="<<r<<" d="<<d<<" w="<<w<<endl;
cout<<"U={";
for(int u : U)
{
cout<<u<<",";
}
cout<<"}"<<endl;**/
vector<int>A,B;
for(int i=0;i<n;i++)
{
if(zaj[i]){continue;}
move_inside(i);
int u=press_button();
if(u>w+d)
{
move_outside(i);
B.push_back(i);
}
else
{
A.push_back(i);
}
}
if((int)A.size()==d*r)
{
w+=d;
for(int u : A)
{
zaj[u]=1;
}
U=B;
}
else
{
for(int u : A)
{
move_outside(u);
}
for(int u : B)
{
zaj[u]=1;
}
U=A;
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |