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"
//#pragma GCC optimize ("O3")
using namespace std;
#define el "\n"
#define se " "
#define ll long long
#define ld long double
#define ff first
#define ss second
#define pb push_back
const ll INF=1e18,ch=1e18;
ll a,b,c,d,n,COST,t,last,ab,ba,n1,n2,fl1,fl2,o1,o2,flag,flag1,flag2,g,m,m1,m2,i,j,lr,f,k,l,r,y,o,p,mx=-ch,mx1=-ch,mx2=-ch,q,q1,q2,q3,q4,mn=ch,mn1=ch,mn2=ch,f1,f2,f3,pos,ans,sum,sz=1,MOD=1e9+7,zero=0,a1,b1,c1,val,sum1,cur,res,ans1,res1,kk,kkk,cnt,cnt1,fl;
ll S[2005];
ll A[2005];
//void move_inside(int i)
//void move_outside(int i)
//int press_button()
bool pr(ll m)
{
ans=0;
for(i=0;i<n;i++)
{
if (S[i]==1) continue;
move_inside(i);
A[i]=1;
if (press_button()+q>m)
{
A[i]=0;
move_outside(i);
}
else
{
ans++;
}
}
if ((m-q)*d==ans) return 1;
return 0;
}
int min_cardinality(int N)
{
n=N;
d=0;
for(i=0;i<n;i++)
{
move_inside(i);
d++;S[i]=1;
if (press_button()>1)
{
move_outside(i);
d--;S[i]=0;
}
}
for(i=0;i<n;i++)
{
if (S[i]==1) move_outside(i);
}
o=1;l=2;r=n/d-1;q=1;
while(l<=r)
{
for(i=0;i<n;i++)
{
A[i]=0;
}
m=(l+r)/2;
if (pr(m)==1)
{
o=m;
l=m+1;
q=m;
for(i=0;i<n;i++)
{
if (A[i]==1)
{
S[i]=1;
move_outside(i);
}
}
}
else
{
r=m-1;
for(i=0;i<n;i++)
{
if (A[i]==1)
{
move_outside(i);
}
}
}
}
if (o==n/d-1)
{
for(i=0;i<n;i++)
{
A[i]=0;
}
if (pr(n/d)==1) o=n/d;
}
return o;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |