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;
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);
}
}
if(r!=-1)
{
//printf("%lld %lld\n",l,r);
ans+=min(min(p[r]*2,(L-p[l]*2)),L);
if((r-l)>=K) ans+=min(min(p[l+K]*2,(L-p[l+K]*2)),min(p[r-K]*2,(L-p[r-K]*2)));
}
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... |