Submission #1008033

#TimeUsernameProblemLanguageResultExecution timeMemory
1008033MardonbekhazratovBoxes with souvenirs (IOI15_boxes)C++17
100 / 100
441 ms293844 KiB
#include "boxes.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;

const ll INFLL=1e18;

long long delivery(int N, int K, int L, int p[]) {
    if(K==1){
        ll ans=0;
        for(int i=0;i<N;i++) ans+=min(p[i],L-p[i])*2;
        return ans;
    }
    if(K==N){
        ll ans=L;
        for(int i=0;i<N;i++){
            ans=min(ans,2ll*p[i-1]+(L-p[i])*2);
        }
        ans=min(ans,2LL*min({L-p[0],p[N-1]}));
        return ans;
    }
    vector<ll>pref(N+1),suff(N+2);
    pref[0]=suff[N+1]=0;
    ll sl=0,sr=0;
    for(int i=0;i<N;i++){
        pref[i+1]=min(L,2*p[i]);
        suff[N-i]=min(L,2*(L-p[N-i-1]));
        if(i>=K) pref[i+1]+=pref[i-K+1],suff[N-i]+=suff[N-i+K];
    }
    ll ans=INFLL;
    for(int i=1;i<=N+1;i++){
        ans=min(ans,pref[i-1]+suff[i]);
    }
    return ans;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:24:8: warning: unused variable 'sl' [-Wunused-variable]
   24 |     ll sl=0,sr=0;
      |        ^~
boxes.cpp:24:13: warning: unused variable 'sr' [-Wunused-variable]
   24 |     ll sl=0,sr=0;
      |             ^~
#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...