Submission #751915

#TimeUsernameProblemLanguageResultExecution timeMemory
751915SebBoxes with souvenirs (IOI15_boxes)C++17
10 / 100
1 ms304 KiB
#include "boxes.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

long long delivery(int N, int K, int L, int p[]) {
    ll ans=0;
    int l=0,r=N-1,aux,in=0;
    sort(p,p+N);
    while (l<N && p[l]==0) l++;
    for (;l<N;l+=K) {
        aux = min(l+K-1,N-1);
        if (p[aux]>L/2) break;
        ans += min({L,2*p[aux],2*(L-p[l])});
    }
    for (;r>=0;r-=K) {
        aux = max(r-K+1,0);
        if (p[aux]<=L/2) break;
        ans += min({L,2*p[r],2*(L-p[aux])});
    }
    if (l<=r) {
        for (in=l;in<=r;in++) if (p[in]>L/2) break;
        in--;
        if (r-l+1 > K) ans += min(2*L,2*p[in] + 2*(L-p[in+1]));
        else ans += min({L,2*p[r],2*(L-p[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...