이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;q=1;
while(l+1<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);
}
}
}
}
return l;
}
//int main()
//{
// ios_base::sync_with_stdio(0);
// cin.tie(0);
// cout.tie(0);
// cin>>n>>a>>b;
// vector < vector < int > > v=devise_strategy(a,b);
//}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |