Submission #1309358

#TimeUsernameProblemLanguageResultExecution timeMemory
1309358avohadoBoxes with souvenirs (IOI15_boxes)C++20
10 / 100
1 ms700 KiB
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std;
#define mod 1000000007
#define maxn 200005
#define f first
#define s second
#define ll long long
#define pb(x) push_back(x)
#define mp make_pair
#define all(x) x.begin(), x.end()
#define len(v) max(0, (int)v.size())
long long delivery(int N, int k, int L, int p[]){
    long long r[1+N], l[N+1];
    l[0]=0;
    long long ans=INT_MAX;
    for(int i=0; i<min(k, N); i++){
        l[i+1]=p[i];
    }
    for(int i=k; i<N; i++){
        l[i+1]=p[i]+l[i+1-k];
    }
    for(int i=N-1; i>=max(0, N-k); i--){
        r[i]=L-p[i];
    }
    r[N]=0;
    for(int i=N-k-1; i>=0; i--){
        r[i]=L-p[i]+r[i+k];
    }
    for(int i=0; i<=N; i++){
        ans=min(ans, l[i]+r[i]);
    }
    if(k>=N){
        return min(ans*2, 1ll*L);
    }else{
        ans*=2;
        for(int i=0; i+k<N; i++){
            ans=min(ans, (l[i]+r[i+k])*2+L);
        }
        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...