이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |