제출 #720987

#제출 시각아이디문제언어결과실행 시간메모리
720987joelgun14선물상자 (IOI15_boxes)C++17
10 / 100
1 ms340 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;

long long delivery(int N, int K, int L, int p[]) {
    long long pref[N + 1], suff[N + 2];
    memset(pref, 0, sizeof(pref));
    memset(suff, 0, sizeof(suff));
    for(int i = 0; i < N; ++i) {
        if(i % K == 0) {
            // ambil dr posisi sebelumnya itu sum, dengan distance seKarang
            pref[i + 1] = pref[i] + p[i];
        }
        else
            pref[i + 1] = pref[i] + p[i] - p[i - 1];
    }
    for(int i = N - 1; i >= 0; --i) {
        if(i % K == (N - 1) % K) {
            suff[i + 1] = suff[i + 2] + L - p[i];
        }
        else {
            suff[i + 1] = suff[i + 2] + p[i + 1] - p[i];
        }
    }
    long long mn = 1e18;
    for(int i = 0; i <= N; ++i) {
        //cout << pref[i] << " " << suff[i + 1] << endl;
        mn = min(mn, pref[i] + suff[i + 1]);
    }
    return 2 * mn;
}
#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...