제출 #1051202

#제출 시각아이디문제언어결과실행 시간메모리
1051202ArthuroWich선물상자 (IOI15_boxes)C++17
100 / 100
431 ms372504 KiB
#include "boxes.h"
#include<bits/stdc++.h>
#define int long long int
using namespace std;
int delivery(int32_t N, int32_t K, int32_t L, int32_t P[]) {
    int ans = INT_MAX, n = N, k = K, l = L;
    vector<int> p(n+1);
    for (int i = 1; i <= n; i++) {
        p[i] = P[i-1];
    }
    vector<int> dpl(n+2, 0), dpr(n+2, 0);
    for (int i = 1; i <= n; i++) {
        dpl[i] = 2*p[i];
        if (i-k > 0) {
            dpl[i] += dpl[i-k];
        }
    }
    for (int i = n; i > 0; i--) {
        dpr[i] = 2*(l-p[i]);
        if (i+k <= n) {
            dpr[i] += dpr[i+k];
        }
    }
    ans = min(dpl[n], dpr[1]);
    for (int i = 1; i < n; i++) {
        ans = min(ans, dpl[i-1]+dpr[i]);
    }
    for (int i = 0; i < n; i++) {
        if (i+k+1 > n+1) {
            break;
        }
        ans = min(ans, dpl[i]+l+dpr[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...