This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
const int INF = 2e9;
long long delivery(int n, int k, int L, int p[]) {
long long ans = 0;
double ur = L / 2;
int l, r;
l = 0;
r = n - 1;
while (l + k - 1 < n && p[l + k - 1] <= ur) {
ans += 2 * p[l + k - 1];
l += k;
}
// cerr << ans << endl;
while (r - k + 1 >= 0 && p[r - k + 1] > (ur)) {
ans += 2 * (L - p[r - k + 1]);
r -= k;
}
int i;
for (i = l; i <= r; i++) {
if (p[i] > ur) break;
}
long long qo = 0;
if (l <= i - 1) qo += 2 * p[i - 1];
if (i <= r) qo += 2 * (L - p[i]);
int qs = (r - l + 1);
if (qs <= 0) return ans;
if (qs > k) {
int t = qs - i;
long long al = min(2 * p[l + t - 1] + L, 2 * p[r - t + 1] + L);
qo = min(al, qo);
} else {
qo = min(qo, (long long)L);
}
cerr << ans << endl;
return ans + qo;
}
# | 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... |