Submission #301725

#TimeUsernameProblemLanguageResultExecution timeMemory
301725square1001Boxes with souvenirs (IOI15_boxes)C++14
50 / 100
2087 ms29560 KiB
#include "boxes.h"
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
long long delivery(int N, int K, int L, int p[]) {
	vector<long long> dpl(N + 1), dpr(N + 1);
	for(int i = 0; i < N; ++i) {
		dpl[i + 1] = dpl[max(i - K + 1, 0)] + p[i] * 2;
	}
	for(int i = N - 1; i >= 0; --i) {
		dpr[i] = dpr[min(i + K, N)] + (L - p[i]) * 2;
	}
	long long ans = (1LL << 62);
	for(int i = 0; i <= N; ++i) {
		for(int j = i; j <= N; ++j) {
			int rem = j - i;
			ans = min(ans, dpl[i] + dpr[j] + 1LL * (rem + K - 1) / K * 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...