Submission #828707

#TimeUsernameProblemLanguageResultExecution timeMemory
828707bachhoangxuanBoxes with souvenirs (IOI15_boxes)C++17
20 / 100
1 ms256 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,min(L,p[i]*2)+min(L,(L-p[i+1])*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...