Submission #1293361

#TimeUsernameProblemLanguageResultExecution timeMemory
1293361goulthenBoxes with souvenirs (IOI15_boxes)C++20
10 / 100
1 ms576 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define rep(i,a,b) for (int i = a; i <= b; i++)
#define per(i,a,b) for (int i = a; i >= b; i--)
#define pb push_back

long long delivery(int N, int K, int L, int p[]) {
    vector<ll> dp(N,0LL), dp2(N,0LL), sum(K,0LL);

    rep(i,0,N-1) {
        sum[i%K]+=p[i];
        dp[i] = 2*sum[i%K];
    }
    fill(sum.begin(),sum.end(),0LL);
    per(i,N-1,0) {
        sum[i%K]+=L-p[i];
        dp2[N-i-1] = 2*sum[i%K];
    }
    //rep(i,0LL,N-1) cout << dp[i] << ' ' << dp2[i] << '\n';
    ll ans = min(dp[N-1], dp2[N-1]);
    rep(i,1LL,N-2) ans = min(ans, dp[i]+dp2[N-i-2]);
    rep(i,1LL,N-K-1) ans = min(ans, dp[i]+dp2[N-i-K-1]+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...