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