제출 #1346283

#제출 시각아이디문제언어결과실행 시간메모리
1346283nathlol2Boxes with souvenirs (IOI15_boxes)C++20
0 / 100
1 ms344 KiB
#include "boxes.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll INF = 4e18;

ll delivery(int n, int k, int l, int p[]){
    auto f = [&](ll x, ll y){
        return min((ll)l, min(y * 2, (l - x) * 2));
    };
    vector<ll> dp(n + 1, INF);
    dp[0] = 0;
    priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> pq;
    for(int i = 1;i<=n;i++){
        dp[i] = dp[max(0, i - k)] + min(l, 2 * p[i - 1]);
        while(!pq.empty() && pq.top().second <= i - k) pq.pop();
        if(pq.size()){
            dp[i] = min(dp[i], pq.top().first);
        }
        pq.push({dp[i] + 2 * (l - p[i - 1]), i});
    }
    return dp[n];
}
#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...