# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
470128 | Cross_Ratio | Boxes with souvenirs (IOI15_boxes) | C++14 | 534 ms | 214704 KiB |
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;
#include "boxes.h"
const long long int INF = 1e18;
long long int A[50000006];
long long int B[50000006];
long long int cnt1 = 1, cnt2 = 1;
long long int C[50000006];
long long int D[50000006];
long long N, K, L;
long long delivery(int N1, int K1, int L1, int* P) {
int i, j;
N = N1;
K = K1;
L = L1;
for(i=0;i<N;i++) {
if(P[i] <= L/2) {
A[cnt1++] = P[i];
}
else B[cnt2++] = L - P[i];
}
reverse(B + 1, B + cnt2);
for(i=0;i<cnt1;i++) {
if(!i) C[i] = 0;
else if(i < K) C[i] = 2 * A[i];
else C[i] = C[i-K] + 2*A[i];
}
for(i=0;i<cnt2;i++) {
if(!i) D[i] = 0;
else if(i < K) D[i] = 2 * B[i];
else D[i] = D[i-K] + 2*B[i];
}
//for(i=0;i<cnt1;i++) cout << A[i] <<' ' << C[i] << '\n';
//for(i=0;i<cnt2;i++) cout << B[i] << ' ' << D[i] << '\n';
long long int ans = INF;
ans = C[cnt1-1] + D[cnt2-1];
for(i=max(cnt1-1-K,0LL);i<cnt1;i++) {
j = max(0LL, cnt2 - K - 1+ (cnt1 - 1 - i) );
long long int c = cnt1 - i + cnt2 - j - 2;
long long ans2 = C[i] + D[j] + (c - 1 + K) / K * L;
assert(ans2 >= 0);
ans = min(ans, ans2);
}
for(i=max(cnt1-1-2*K,0LL);i<cnt1;i++) {
j = max(0LL, cnt2 - 2*K - 1+ (cnt1 - 1 - i) );
long long int c = cnt1 - i + cnt2 - j - 2;
long long ans2 = C[i] + D[j] + (c - 1 + K) / K * L;
assert(ans2 >= 0);
ans = min(ans, ans2);
}
return ans;
for(i=max(cnt1-1-K,0LL);i<cnt1;i++) {
for(j=max(cnt2-1-K,0LL);j<cnt2;j++) {
long long int c = cnt1 - i + cnt2 - j - 2;
long long ans2 = C[i] + D[j] + (c - 1 + K) / K * L;
assert(ans2 >= 0);
ans = min(ans, ans2);
}
}
return ans;
}
Compilation message (stderr)
# | 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... |