/**
* In the name of Allah
* We are nothing and you're everything
* Ya Muhammad!
**/
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std;
using ll = long long;
using ull = uint64_t;
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
//#define int long long
const char nl = '\n';
long long delivery(int n, int k, int L, int p[]) {
ll res = 0, pos = 0;
vector<ll> l;
for (int i = 0; i < n; ++i) {
if (p[i]>(L+1)/2)break;
if (i+1 <= k)l.push_back(p[i]*2);
else l.push_back(l[sz(l)-k-1]+p[i]*2);
res = l.back();
pos = i+1;
}
ll back = 0;
vector<ll> r;
for (int i = pos; i < n; ++i) {
if (sz(r) < k)r.push_back((L-p[i])*2);
else r.push_back(r[sz(r)-k]+(L-p[i])*2);
back = r.back();
}
res += back;
for (int i = 0; i < sz(l); ++i) {
for (int j = sz(r)-1; j >= 0; --j) {
if (sz(l)-i+sz(r)-j > k)continue;
res = min(res, (i>0?l[i-1]:0ll)+L+(j-1>=0?r[j-1]:0ll));
}
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |