Submission #420309

#TimeUsernameProblemLanguageResultExecution timeMemory
420309AzimjonBoxes with souvenirs (IOI15_boxes)C++17
20 / 100
1 ms272 KiB
#include "boxes.h"
#include <bits/stdc++.h>

using namespace std;

const int INF = 2e9;

long long delivery(int n, int k, int L, int p[]) {
	long long ans = 0;
	double ur = L / 2;

	int m;
	for (m = 0; m < n; m++)
		if (p[m] > ur) break;

	int l = m - 1;
	int r = m;
	// cout << l << " " << r << endl;
	while (1) {
		if (l - k + 1 >= 0) {
			ans += 2 * p[l];
			l -= k;
		} else
			break;
	}

	while (1) {
		if (r + k - 1 < n) {
			ans += 2 * (L - p[r]);

			r += k;
		} else
			break;
	}

	long long o = 0;

	if (l >= 0) o += 2 * p[l];
	if (r < n) o += 2 * (L - p[r]);

	int q = 0;
	if (l >= 0) q += l + 1;
	if (r < n) q += n - r;

	if (q <= k) {
		o = min(o, (long long)L);
	} else {
		//
	}

	return ans + o;
}
#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...