제출 #1345441

#제출 시각아이디문제언어결과실행 시간메모리
1345441enzy선물상자 (IOI15_boxes)C++20
0 / 100
0 ms344 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, cur=K;
    auto dist=[&](int a, int b){
        ll c1=abs(a-b), c2=L-c1;
        return min(c1,c2);
    };
    int lst=-1;
    for(int i=0;i<N;i++){
        if(cur==0){
            resp+=dist(at,0);
            at=0;
            cur=K;
        }
        if(dist(at,l)<dist(at,r)){
            resp+=dist(at,p[l]);
            at=p[l];
            l++;
            if(lst==1) cur=K;
            lst=0;
        }else{
            resp+=dist(at,p[r]);
            at=p[r];
            r--;
            if(lst==0) cur=K;
            lst=1;
        }
    }
    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...