Submission #1245811

#TimeUsernameProblemLanguageResultExecution timeMemory
1245811warrennBoxes with souvenirs (IOI15_boxes)C++20
100 / 100
361 ms235240 KiB
#include "boxes.h"
#include<bits/stdc++.h>
using namespace std;


long long delivery(int n, int k, int l, int p[]) {
    int pos[n+1];
    for(int q=1;q<=n;q++){
        pos[q]=p[q-1];
    }
    long long pref[n+1];
    pref[0]=0;
    for(long long q=1;q<=n;q++){
        if(q<=k){
            pref[q]=pos[q]+min(pos[q],l-pos[q]);
        }
        else{
            pref[q]=pref[q-k]+pos[q]+min(pos[q],l-pos[q]);
        }
    }
    long long suf[n+2];
    suf[n+1]=0;
    for(long long q=n;q>=1;q--){
        if(q>n-k){
            suf[q]=(l-pos[q])+min(pos[q],l-pos[q]);
        }
        else{
            suf[q]=suf[q+k]+(l-pos[q])+min(pos[q],l-pos[q]);
        }
    }
    long long ans=1e18;
    for(long long q=0;q<=n;q++){
        ans=min(ans,pref[q]+suf[q+1]);
    }
    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...