Submission #1265150

#TimeUsernameProblemLanguageResultExecution timeMemory
1265150canhnam357Boxes with souvenirs (IOI15_boxes)C++20
100 / 100
480 ms196148 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
long long delivery(int N, int k, int L, int p[]) {
    sort(p, p + N);
    vector<long long> cw(N), ccw(N);
    for (int i = 0; i < N; i++) {
        cw[i] = 2 * p[i] + (i >= k ? cw[i - k] : 0);
    }
    for (int i = N - 1; i >= 0; i--) {
        ccw[i] = 2 * (L - p[i]) + (i + k < N ? ccw[i + k] : 0);
    }
    long long ans = min(cw[N - 1], ccw[0]);
    for (int i = 1; i < N; i++) {
        ans = min(ans, cw[i - 1] + ccw[i]);
    }
    if (k == N) ans = min(ans, (long long)L);
    else {
        ans = min(ans, cw[N - k - 1] + L);
        ans = min(ans, ccw[k] + L);
        for (int i = 0; i + k + 1 < N; i++) {
            ans = min(ans, cw[i] + ccw[i + k + 1] + 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...