Submission #59174

#TimeUsernameProblemLanguageResultExecution timeMemory
59174TadijaSebezBoxes with souvenirs (IOI15_boxes)C++11
100 / 100
540 ms235256 KiB
#include <stdio.h>
#include <vector>
using namespace std;
#define ll long long
#define pb push_back
const int N=10000050;
const ll inf=1e18;
ll l[N],r[N];
ll min(ll a, ll b){ return a>b?b:a;}
ll max(ll a, ll b){ return a>b?a:b;}
int x[N];
ll delivery(int n, int k, int sz, int v[])
{
	int i;
	//scanf("%i %i %i",&n,&k,&sz);
	for(i=1;i<=n;i++) x[i]=v[i-1];//scanf("%i",&x[i]);
	for(i=1;i<=n;i++) l[i]=l[max(i-k,0)]+(ll)2*x[i];
	for(i=n;i>=1;i--) r[i]=r[min(i+k,n+1)]+(ll)2*(sz-x[i]);
	ll sol=inf;
	if(n<=k) sol=sz;
	for(i=0;i<=n;i++) sol=min(sol,l[i]+r[i+1]);
	for(i=0;i<=n;i++) sol=min(sol,l[i]+r[min(i+k+1,n+1)]+sz);
	//printf("%lld\n",sol);
	return sol;
}
#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...