제출 #519332

#제출 시각아이디문제언어결과실행 시간메모리
519332pavement선물상자 (IOI15_boxes)C++17
20 / 100
1 ms332 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int start;
ll ans, pf[10000005], sf[10000005];

ll delivery(int N, int K, int L, int p[]) {
	start = N;
	for (int i = 0; i < N; i++)
		pf[i] = (i - K >= 0 ? pf[i - K] : 0ll) + 2ll * (ll)p[i];
	for (int i = N - 1; i >= 0; i--)
		sf[i] = (i + K < N ? sf[i + K] : 0ll) + 2ll * (ll)(L - p[i]);
	for (int i = 0; i + K - 1 < N; i++)
		if (pf[i + K - 1] > (i ? pf[i - 1] : 0ll) + (ll)L) {
			start = i;
			break;
		}
	ans = LLONG_MAX;
	for (int i = 0; i <= N; i++) ans = min(ans, (ll)(i ? pf[i - 1] : 0) + (ll)sf[i]);
	for (int i = start; i <= N; i += K)
		ans = min(ans, (start > 0 ? pf[start - 1] : 0ll) + sf[i] + (ll)(i - start) / (ll)K * (ll)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...