Submission #1255343

#TimeUsernameProblemLanguageResultExecution timeMemory
1255343lambd47Boxes with souvenirs (IOI15_boxes)C++20
100 / 100
348 ms196112 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;


#define ll long long

ll delivery(int n,int k, int l, int positions[]){
    const ll mod=1e15+7;


    vector<ll> dpp(n+7);
    vector<ll> dps(n+7);

    for(int i=0;i<n;i++){
        dpp[i]=2*positions[i];
        if(i>=k){
            dpp[i]+=dpp[i-k];
        }
    }
    for(int i=n-1;i>=0;i--){
        dps[i]=2*(l-positions[i]);
        if(i+k<n){
            dps[i]+=dps[i+k];
        }
    }
    ll resp=mod;
    ll ida;ll volta;

    for(int i=-1;i<n;i++){
        ida=0;volta=0;
        if(i!=-1){
            ida=dpp[i];
        }
        if(i!=n-1){
            volta=dps[i+1];
        }
        resp=min(resp,ida+volta);
    }

    for(int i=-1,j=k;j<=n;j++,i++){
        ida=0;volta=0;
        if(i!=-1){
            ida=dpp[i];
        }
        if(j!=n){
            volta=dps[j];
        }
       // cout<<i<<" "<<ida<<" "<<volta<<"\n";
        resp=min(resp,ida+l+volta);
    }
    return resp;



};

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