# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
849379 | abcvuitunggio | Boxes with souvenirs (IOI15_boxes) | C++17 | 1 ms | 2504 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 "boxes.h"
#include <bits/stdc++.h>
using namespace std;
vector <int> a,b;
long long res,dp[10000001],dp2[10000001];
long long delivery(int N, int K, int L, int p[]){
for (int i=0;i<N;i++)
if (p[i]<=L/2)
a.push_back(p[i]);
else
b.push_back(L-p[i]);
sort(a.begin(),a.end());
sort(b.begin(),b.end());
for (int i=0;i<a.size();i++)
dp[i]=(i>=K?dp[i-K]:0)+a[i]*2;
for (int i=0;i<b.size();i++)
dp2[i]=(i>=K?dp2[i-K]:0)+b[i]*2;
int i=(int)a.size()-1,j=(int)b.size()-1;
while (i>=0||j>=0){
pair <long long, int> mn={1e18,-1};
for (int l=0;l<=K;l++)
mn=min(mn,{(i<l?0:dp[i-l])+(j<K-l?0:dp2[j]),l});
if (mn.first+L>dp[i]+dp2[j]){
res+=dp[i]+dp2[j];
break;
}
res+=L;
i-=mn.second;
j-=K-mn.second;
}
return res;
}
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... |