Submission #340520

#TimeUsernameProblemLanguageResultExecution timeMemory
340520KerimBoxes with souvenirs (IOI15_boxes)C++17
50 / 100
2075 ms33388 KiB
#include "boxes.h"
#include "stdio.h"
#define MAXN 1000001
#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++)
		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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...