Submission #406078

#TimeUsernameProblemLanguageResultExecution timeMemory
406078ritul_kr_singh선물상자 (IOI15_boxes)C++17
100 / 100
583 ms265496 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sp << ' ' <<
#define nl << '\n'
#include "boxes.h"

ll delivery(int N, int K, int L, int p[]){
	ll pre[N], suf[N];
	for(int i=0; i<N; ++i){
		pre[i] = p[i] * 2LL + (i >= K ? pre[i-K] : 0LL);
	}
	for(int i=N-1; i>=0; --i){
		suf[i] = (L-p[i]) * 2LL + (i + K < N ? suf[i+K] : 0LL);
	}
	ll ans = min(pre[N-1], suf[0]);
	for(int i=0; i+1<N; ++i) ans = min(ans, pre[i] + suf[i+1]);
	for(int i=0; i<N; ++i){
		ll curr = L;
		if(i) curr += pre[i-1];
		if(i+K < N) curr += suf[i+K];
		ans = min(ans, curr);
	}
	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...