Submission #291428

#TimeUsernameProblemLanguageResultExecution timeMemory
291428BertedBoxes with souvenirs (IOI15_boxes)C++14
20 / 100
1 ms384 KiB
#include "boxes.h"
#include <iostream>
#include <assert.h>
#include <utility>
#include <algorithm>

using namespace std;

long long delivery(int N, int K, int L, int p[]) 
{
	long long res = 0; int i, j, Lsz = 0, Rsz = 0;
	for (i = 0; i < N && p[i] == 0; i++);
	for (; i < N && p[i] <= L / 2; i++)
	{
		Lsz++;
		if (Lsz == K) {res += 2 * p[i]; Lsz = 0;}
	}
	for (j = N - 1; j >= 0 && p[j] > L / 2; j--)
	{
		Rsz++;
		if (Rsz == K) {res += 2 * (L - p[j]); Rsz = 0;}
	}
	i--; j++;
	long long temp = 0;
	if (Lsz) 
	{
		assert(i >= 0);
		temp += 2 * p[i];
	}
	if (Rsz) 
	{
		assert(j < N);
		temp += 2 * (L - p[j]);
	}
	res += min(temp, (long long)(Lsz + Rsz + K - 1) / K * L);
    return res;
}
#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...