제출 #1343943

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

long long delivery(int N, int K, int L, int p[]) {
    vector<ll> V(p, p+N);
    sort(V.begin(), V.end());

    vector<ll> dpl(N), dpr(N);

    for(int i=0;i<N;i++){
        if(i<K) dpl[i]=2*V[i];
        else dpl[i]=dpl[i-K]+2*V[i];
    }

    vector<ll> R(N);
    for(int i=0;i<N;i++){
        R[i]=L - V[N-1-i];
    }

    for(int i=0;i<N;i++){
        if(i<K) dpr[i]=2*R[i];
        else dpr[i]=dpr[i-K]+2*R[i];
    }

    ll ans = min(dpl[N-1], dpr[N-1]);

    for(int i=-1;i<N;i++){
        ll left = (i>=0 ? dpl[i] : 0);
        ll right = (i+1<N ? dpr[N-2-i] : 0);
        ans = min(ans, left + right);
    }

    for(int i=-1;i<N;i++){
        ll left = (i>=0 ? dpl[i] : 0);
        ll right = (i+1<N ? dpr[N-2-i] : 0);
        ans = min(ans, left + right + L);
    }

    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...