#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
long long delivery(int n, int k, int l, int p[]) {
long long kact=k, po=0, dist=-1, dist1=-1, y=0; vector<long long> a, b, c, d;
for(long long i=0; i<n; i++){if(p[i]==0) continue; 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()); if(a.size()>0)dist=a.size()-1; if(b.size()>0)dist1=b.size()-1;
for(long long i=dist; i>=0; i-=k)
{
y+=(2*a[i]);
}
for(long long i=dist1; i>=0; i-=k)
{
po+=(2*(b[i]));
} y+=po;
c.resize(a.size());for(int i=0; i<a.size(); i++) c[i]=2*a[i]; for(int i=k; i<a.size(); i++) c[i]+=c[i-k];
d.resize(b.size());for(int i=0; i<b.size(); i++) d[i]=2*b[i]; for(int i=k; i<b.size(); i++) d[i]+=d[i-k];
for(int i=0; i<=k; i++)
{
long long u=0, v=0; if(i<a.size()){int ind=a.size()-1-i; if(ind>=0)u=c[ind];}
if(k-i<b.size()){int ind=b.size()-1-(k-i); if(ind>=0)v=d[ind];} y=min(y, (long long)l+u+v);
}
return y;
}
# | 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... |