Submission #1202076

#TimeUsernameProblemLanguageResultExecution timeMemory
1202076alindBoxes with souvenirs (IOI15_boxes)C++20
20 / 100
0 ms328 KiB
#include "boxes.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

long long delivery(int N, int K, int L, int p[]) {
	vector<ll> pref(N), suf(N);
	for (int i = 0, j = N - 1; ~j && i < N; i++, j--) {
		pref[i] = 2ll * p[i] + (i < K ? 0ll : pref[i - K]);
		suf[j] = 2ll * (L - p[j]) + (i < K ? 0ll : suf[j + K]);
	}
	ll mn = 1ll<<62;
	if (K >= N) mn = min({pref[N-1], suf[0], (ll)L});
//	for (auto x : pref) cerr << x << ' '; cerr << '\n';
//	for (auto x : suf) cerr << x << ' '; cerr << '\n';
	for (int i = 0; i < N; i++) mn = min(mn, pref[i] + (i < N - 1 ? suf[i+1] : 0ll));
	for (int i = 0; i + K <= N; i++) mn = min(mn, L + (i ? pref[i-1] : 0ll) + (i + K < N ? suf[i + K] : 0ll));
//	cerr << mn << '\n';
	return mn;
}
#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...