# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
668502 | victor_gao | Boxes with souvenirs (IOI15_boxes) | C++17 | 851 ms | 398904 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>
#include "boxes.h"
using namespace std;
long long delivery(int N, int K, int L, int p[]) {
vector<long long>all,dis;
sort(p,p+N);
for (int i=0;i<N;i++){
if (p[i]!=0){
all.push_back(p[i]);
dis.push_back(p[i]);
}
}
int n=all.size();
long long pre[N+5],suf[N+5];
for (int i=0;i<min(n,K);i++)
pre[i]=min(2*dis[i],(long long)L);
for (int i=K;i<n;i++)
pre[i]=pre[i-K]+min(2*dis[i],(long long)L);
for (int i=0;i<n;i++)
dis[i]=L-all[i];
for (int i=n-1;i>=max(n-K,0);i--)
suf[i]=min(2*dis[i],(long long)L);
for (int i=n-1-K;i>=0;i--)
suf[i]=suf[i+K]+min(2*dis[i],(long long)L);
long long ans=1e18;
for (int i=0;i<=n;i++){
long long tans1=(i-1>=0?pre[i-1]:0);
long long tans2=(i>=n?0:suf[i]);
ans=min(ans,tans1+tans2);
}
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... |