이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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-p[i]))
{
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((L-p[i])<p[i])
{
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... |