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"
#define MAXN 10000002
#define ll long long
template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;}
ll pre[MAXN],suf[MAXN];
int arr[MAXN];
long long delivery(int n, int k, int l, int as[]) {
for(int i=1;i<=n;i++)
arr[i]=as[i-1];
arr[0]=0;arr[n+1]=l;
for(int i=1;i<=n;i++){
pre[i]=arr[i];
if(i>=k)pre[i]+=pre[i-k];
}
for(int i=n;i>=1;i--){
suf[i]=l-arr[i];
if(i+k<=n+1)suf[i]+=suf[i+k];
}
ll ans=((n+k-1)/k)*1LL*l;
for(int a=0;a<=n;a++)
umin(ans,2*(pre[a]+suf[a+1]));
for(int a=0;a+k<=n;a++)
umin(ans,2*(pre[a]+suf[a+k+1])+l);
/*
for(int a=0;a<=n;a++)
for(int b=a+1;b<=n+1;b++)
umin(ans,2*(pre[a]+suf[b])+((b-a+k-2)/k)*1LL*l);
*/
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... |