Submission #72811

#TimeUsernameProblemLanguageResultExecution timeMemory
72811square1001Boxes with souvenirs (IOI15_boxes)C++14
50 / 100
67 ms23864 KiB
#include "boxes.h"
#include <vector>
#include <algorithm>
using namespace std;

long long d[10000009];
long long delivery(int N, int K, int L, int p[]) {
	sort(p, p + N);
	int ls = 0;
	for(int i = 0; i < N; ++i) {
		if(2 * p[i] < L) ++ls;
	}
	for(int i = 1; i <= ls; ++i) {
		d[i] = (i < K ? 0 : d[i - K]) + 2 * p[i - 1];
	}
	for(int i = 1; i <= N - ls; ++i) {
		d[i + ls + 1] = (i < K ? 0 : d[i - K + ls + 1]) + 2 * (L - p[N - i]);
	}
	long long ret = d[ls] + d[N + 1];
	for(int i = ls - K + 1; i <= ls && i <= N - K; ++i) {
		int pl = N - K - i + ls + 1;
		if(pl < 0 || pl >= N + 2) continue;
		ret = min(ret, d[i] + d[N - K - i + ls + 1] + L);
	}
	return ret;
}
#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...