Submission #828699

#TimeUsernameProblemLanguageResultExecution timeMemory
828699bachhoangxuanBoxes with souvenirs (IOI15_boxes)C++17
20 / 100
1 ms328 KiB
#include "boxes.h"
#include<bits/stdc++.h>
using namespace std;


long long delivery(int N, int k, int L, int p[]) {
    long long ans=0;
    int l=0,r=N-1;
    while(l+k-1<N && p[l+k-1]<=L/2) ans+=p[l+k-1]*2,l+=k;
    while(r-k+1>=0 && p[r-k+1]>L/2) ans+=(L-p[r-k+1])*2,r-=k;
    if(l<=r){
        int Min=2*L;
        if(r-l+1<=k) Min=min({Min,L,p[r]*2,(L-p[l])*2});
        for(int i=l;i<r;i++){
            if(i-l+1<=k && r-i<=k) Min=min(Min,(L-p[i+1]+p[i])*2);
        }
        ans+=Min;
    }
    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...