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 "boxes.h"
#include <stdio.h>
#include <iostream>
using namespace std;
bool have[10000005]={0};
long long delivery(int N, int K, int L, int p[])
{
long long ans=0,t=0,how;
int i,l=1e9+7,r=-1,j;
for(i=0;i<N;i++)
{
if(p[i]<=L/2)
{
if((i+1)%K==0)
{
ans+=p[i]*2;
for(j=i-K+1;j<=i;j++) have[j]=1;
//printf("%lld\n",ans);
}
}
else break;
}
for(i=N-1;i>=0;i--)
{
if(p[i]>L/2)
{
if((N-i)%K==0)
{
ans+=(L-p[i])*2;
for(j=i;j-i<K;j++) have[j]=1;
//printf("%lld\n",ans);
}
}
else break;
}
for(j=0;j<N;j++)
{
if(have[j]==0)
{
l=min(l,j);
r=max(r,j);
}
}
t=1e18;
if(r!=-1)
{
for(i=l;i<r;i++)
{
if((l-i+1)<=K&&(r-i)<=K)
{
how=p[i]*2;
how+=(L-p[i+1])*2;
t=min(t,how);
}
}
if((r-l+1)<=K)
{
t=min(t,(long long) p[r]*2);
t=min(t,(long long) (L-p[l])*2);
t=min(t,(long long) L);
}
t=min(t,(long long) 2*L);
ans+=t;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |