# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1122979 | heey | 선물상자 (IOI15_boxes) | C++17 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#define f first
#define s second
#define all(x) (x).begin(), (x).end()
#define mod 1'000'000'007
#define inf 1'000'000'000'000'00
#define pb push_back
#define vvi vector<vi>
#define fst ios_base::sync_with_stdio(0);cin.tie(0);
using namespace std;
#include "boxes.h"
long long delivery(int n, int k, int L, int a[]){
int res = INT_MAX;
vector<int> dpc(n+1), dpcc(n+1);
for(int i = 1; i <= n; i++){
if(i >= k) dpc[i] = dpc[i-k];
dpc[i] += 2*a[i-1];
}
for(int i = n-1; i >= 0; i--){
if(i < n-k) dpcc[i] = dpcc[i+k];
dpcc[i] += 2*(L - a[i]);
}
for(int i = 0; i <= n; i++){
res = min(res, dpc[i] + dpcc[i]);
}
return res;
}
signed main(){
fst
int n, k, l; cin >> n >> k >> l;
int a[n];
for(int i = 0; i < n; i++) cin>>a[i];
cout << delivery(n, k, l, a);
}