Submission #419293

#TimeUsernameProblemLanguageResultExecution timeMemory
419293MohamedAhmed04Boxes with souvenirs (IOI15_boxes)C++14
100 / 100
589 ms239416 KiB
#include <bits/stdc++.h>
#include "boxes.h"
//#include "grader.cpp"

using namespace std ;

const int MAX = 1e7 + 5 ;

long long pref[MAX] , suff[MAX] ;

long long delivery(int n, int k, int L, int p[]) 
{
	for(int i = 0 ; i < n ; ++i)
	{
		if(i-k >= 0)
			pref[i] = pref[i-k] ;
		pref[i] += p[i] + min(p[i] , L - p[i]) ;
	}
	for(int i = n-1 ; i >= 0 ; --i)
	{
		if(i+k <= n-1)
			suff[i] = suff[i+k] ;
		suff[i] += L - p[i] + min(p[i] , L - p[i]) ;
	}
	long long ans = suff[0] ;
	for(int i = 0 ; i < n ; ++i)
		ans = min(ans , pref[i] + suff[i+1]) ;
	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...