제출 #100201

#제출 시각아이디문제언어결과실행 시간메모리
100201luciocfBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
714 ms333256 KiB
#include <bits/stdc++.h>
#include "boxes.h"
 
using namespace std;
 
const int maxn = 1e7+10;
 
typedef long long ll;
 
int p[maxn];
 
ll pref[maxn], suf[maxn];
 
long long delivery(int N, int K, int L, int positions[])
{
	int n = N, k = K;
	for (int i = 1; i <= n; i++)
		p[i] = positions[i-1];
 
	pref[1] = 2ll*p[1];
	for (int i = 2; i <= n; i++)
		pref[i] = 2ll*p[i] + pref[max(0, i-k)];

	suf[n] = 2ll*(L-p[n]);
	for (int i = n-1; i >= 1; i--)
		suf[i] = 2ll*(L-p[i]) + suf[min(n+1, i+k)];

	ll ans = min(pref[n], suf[1]);
	if (k == n) ans = min(ans, 1ll*L);
	
	for (int i = 1; i < n; i++)
		ans = min(ans, pref[i]+suf[i+1]);

	for (int i = 1; i <= n-k; i++)
		ans = min(ans, pref[i] + 1ll*L + suf[i+k+1]);
 
	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...