제출 #1276886

#제출 시각아이디문제언어결과실행 시간메모리
1276886papaulo선물상자 (IOI15_boxes)C++20
100 / 100
351 ms196760 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

#define MAXN 10100100
ll dpl[MAXN];
ll dpr[MAXN];

void getDp(int N, int K, int p[], ll *dp) {
    dp[0]=0;
    for(int i=1;i<=N;i++) {
        dp[i]=dp[max(0, i-K)]+2LL*p[i-1];
    }
}

ll delivery(int N, int K, int L, int p[]) {
    getDp(N, K, p, dpl);
    reverse(p, p+N);
    for(int i=0;i<N;i++) p[i]=L-p[i];
    getDp(N, K, p, dpr);
    for(int i=K;i<=N;i++) {
        dpr[i]=min(dpr[i], dpr[i-K]+L);
    }
    ll ans=1e18L;
    for(int i=0;i<=N;i++) {
        ans=min(ans, dpl[i]+dpr[N-i]);
    }
    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...