Submission #1298401

#TimeUsernameProblemLanguageResultExecution timeMemory
1298401the_commando_xBoxes with souvenirs (IOI15_boxes)C++17
100 / 100
235 ms39540 KiB
#include "boxes.h"

#include <bits/stdc++.h>

long long delivery(int N, int K, int L, int p[])
{
    long long ans;

    int it = std::lower_bound(p, p + N, (L + 1) / 2) - p;

    auto get_prf = [&](int i)
    {
        long long res = 0;
        for (; i >= 0; i -= K)
            res += 2 * p[i];
        return res;
    };
    auto get_suf = [&](int i)
    {
        long long res = 0;
        for (; i < N; i += K)
            res += 2 * (L - p[i]);
        return res;
    };

    ans = get_prf(it - 1) + get_suf(it);

    for (int i = std::max(0, it - K); i < it; i++)
        ans = std::min(ans, (long long)get_prf(i - 1) + L + get_suf(i + K));

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