#include <algorithm>
#include <cmath>
#include <iostream>
#include <deque>
#include <math.h>
#include <numeric>
#include <set>
#include <stack>
#include <map>
#include <string>
#include <utility>
#include <vector>
#include <climits>
#define all(a) (a).begin(), (a).end()
#define allr(a) (a).rbegin(), (a).rend()
#define ll long long
#define ld long double
#define fr(i, a, b) for (ll i = a; i < b; i++)
#define fr1(i, a, b) for (ll i = a - 1; i >= b; i--)
#define fi first
#define se second
#define mp(j, k) make_pair(j, k)
#define pb(x) push_back(x)
#define in(x) insert(x)
#define vec vector<ll>
#define vecv vector<vector<ll> >
#define veb vector<bool>
#define vecp vector<pair<ll,ll>>
#define yes cout << "YES\n";
#define no cout << "NO\n";
#define ac 1e-7
#define fauto(a)   \
  for (auto i : a) \
    cout << i << " ";
#define fautop(a)  \
  for (auto i : a) \
    cout << i.fi << " " << i.se << endl;
const ll INF = 1e9;
using namespace std;
int delivery(int N, int K, int L, int *positions)
{
    vector<int> freq(L, 0);
    for(int i = 0; i < N; ++i)
    {
        int pos = positions[i];
        if(pos != 0)
            freq[pos]++;
    }
    int cost = 0;
    int curK = K;
    int curP = 0;
    for(int i = 0; i < L; ++i)
    {
        if(!freq[i]) continue;
        while(freq[i] > 0)
        {
            if(!curP)
            {
                ll dist = min(i, L - i);
                cost += dist;
                curP = i;
            }
            else if(curP < i)
            {
                cost += i - curP;
                curP = i;
            }
            int deliver = min(curK, freq[i]);
            freq[i] -= deliver;
            curK -= deliver;
            if(!curK)
            {
                cost += min(curP, L - curP);
                curP = 0;
                curK = K;
            }
        }
    }
    if(curP != 0)
        cost += min(curP, L - curP);
        return cost;
}
/*int32_t main()
{
    int n, k, l; cin >> n >> k >> l;
    int positions[n];
    for(int i = 0; i < n; ++i)
        cin >> positions[i];
    cout << delivery(n, k, l, positions) << "\n";
}*/
| # | 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... |