Submission #1345433

#TimeUsernameProblemLanguageResultExecution timeMemory
1345433enzyBoxes with souvenirs (IOI15_boxes)C++20
10 / 100
1 ms348 KiB
#include "boxes.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;

ll delivery(int N, int K, int L, int p[]){
    int l=0, r=N-1, at=0;
    sort(p,p+N);
    int qtd=-1;
    for(int i=0;i<N;i++){
        if(p[i]){
            qtd=i;
            break;
        }
    }
    if(qtd==-1) qtd=N;
    N-=qtd;
    l=qtd;
    ll resp=0;
    auto dist=[&](int a, int b){
        ll c1=abs(a-b), c2=L-c1;
        return min(c1,c2);
    };
    for(int i=0;i<N;i++){
        if((i%K==0)){
            resp+=dist(at,0);
            at=0;
        }
        if(dist(at,l)<dist(at,r)){
            resp+=dist(at,p[l]);
            at=p[l];
            l++;
        }else{
            resp+=dist(at,p[r]);
            at=p[r];
            r--;
        }
    }
    return resp+dist(at,0);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...