#include<bits/stdc++.h>
using namespace std;
long long getCost(vector<long long>& Arr,int SubT,int k){
long long cost=0;
for(int i=Arr.size()-1-SubT;i>-1;i-=k){
cost+=Arr[i]*2LL;
}
return cost;
}
long long delivery(int N,int K, int L, int* Pos){
vector<long long> CostR;
vector<long long> CostL;
for(int i=0;i<N && Pos[i]<=L/2;i++){
if(i<K){
CostR.push_back(Pos[i]*2);
}
else {
CostR.push_back(Pos[i-K]*2);
}
}
for(int i=N-1;i>-1 && Pos[i]>L/2;i--){
if(i>N-K-1){
CostL.push_back((L-Pos[i])*2);
}
else {
CostL.push_back((L-Pos[i+K])*2);
}
}
long long minC=1000000000000;
for(int loopS=0;loopS<=K;loopS++){
int loopSR=K-loopS;
long long cost=0;
if((int)CostR.size()<loopSR){
cost=1000000000000;
}
else if((int)CostL.size()<loopS){
cost=1000000000000;
}
else{
cost=CostR[CostR.size()-loopSR]+CostL[CostL.size()-loopS]+L;
}
if(cost<minC){
minC=cost;
}
}
return min(getCost(CostR,0,K)+getCost(CostL,0,K),minC);
}
# | 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... |