제출 #1331249

#제출 시각아이디문제언어결과실행 시간메모리
1331249orgiloogii선물상자 (IOI15_boxes)C++20
100 / 100
335 ms196104 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
long long dp[10000001];
long long dp1[10000001];
long long delivery(int n, int k, int l, int p[]) {
    for (int i = 0;i < n;i++) {
        if (i - k < 0) {
            dp[i] = min(2 * p[i], l);//butsah, toiroh
        }
        else {
            dp[i] = dp[i - k] + min(2 * p[i], l);
        }
    }
    for (int i = n - 1;i >= 0;i--) {
        if (i + k >= n) {
            dp1[i] = min(l, 2 * (l - p[i]));//butsah, toiroh
        }
        else {
            dp1[i] = dp1[i + k] + min(l, 2 * (l - p[i]));
        }
    }
    // for (int i = 0;i < n;i++) {
    //     cout << dp[i] << " ";
    // }
    // cout << endl;
    // for (int i = 0;i < n;i++) {
    //     cout << dp1[i] << endl;
    // }
    long long ans = min(dp1[0], dp[n - 1]);
    for (int i = 0;i < n - 1;i++) {
        ans = min(ans, dp[i] + dp1[i + 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...