Submission #993320

#TimeUsernameProblemLanguageResultExecution timeMemory
993320Mr_HusanboyBoxes with souvenirs (IOI15_boxes)C++17
100 / 100
481 ms293632 KiB
#include "boxes.h"

#include<bits/stdc++.h>

using namespace std;
#define ll long long
const ll infl = 1e18;

#ifdef LOCAL
#include "debugger.cpp"
#else
#define debug(...)
#endif
const int maxn = 1e7 + 1;

ll lef[maxn], rig[maxn];

long long delivery(int n, int k, int mx, int p[]) {
    for(int i = 0; i < n; i ++){
        lef[i] = min(mx, 2 * p[i]);
        if(i - k >= 0) lef[i] += lef[i - k];
    }

    ll ans = lef[n - 1];
    for(int i = n - 1; i >= 0; i --){
        rig[i] = min(mx, 2 * (mx - p[i]));
        if(i + k <= n - 1) rig[i] += rig[i + k];
        if(i + 1 <= n - 1){
            ans = min(ans, lef[i] + rig[i + 1]);
        }
    }
    ans = min(ans, rig[0]);
    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...