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 <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e7 + 10;
#include "boxes.h"
ll ans0[N], ans1[N];
long long delivery(int n, int k, int m, int p[]) {
for (int i = 0; i < n; ++i) {
if (i < k) {
ans0[i] = p[i] + min(p[i], m - p[i]);
ans1[n - 1 - i] = (ll) m - p[n - 1 - i] + min((ll)p[n - 1 - i], (ll)m - p[n - 1 - i]);
} else {
ans0[i] = ans0[i - k] + p[i] + min(p[i], m - p[i]);
ans1[n - 1 - i] = ans1[n - 1 - i + k] + (ll) m - p[n - 1 - i] + min((ll)p[n - 1 - i], (ll)m - p[n - 1 - i]);
}
}
ll ans = ans0[n - 1];
ans = min(ans, ans1[0]);
for (int i = 0; i < n - 1; ++i) {
ans = min(ans, ans0[i] + ans1[i + 1]);
}
return ans;
}
// int32_t main() {
// ios::sync_with_stdio(false);
// cin.tie(nullptr);
// int n, k, m;
// cin >> n >> k >> m;
// int pos[n];
// for (int i = 0; i < n; ++i) {
// cin >> pos[i];
// }
// cout << "answer: " << delivery(n, k, m, pos) << "\n";
// return 0;
// }
# | 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... |