| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1359931 | NAMIN | Boxes with souvenirs (IOI15_boxes) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "boxes.h"
#define ll long long
using namespace std;
ll delivery(int N, int K, int L, int p[]) {
ll ans = 0;
deqeue<int> dq;
for(int i=0;i<N;i++)
dq.push_back(p[i]);
sort(dq.begin(),dq.end());
while(dq.size()>=K){
ll costl = min(N,dq[K-1]*2);
ll costr = min(N,(L-dq[N-K])*2);
if(costl<=costr){
ans += costl;
for(int i=0;i<K;i++)
dq.pop_front();
}
else{
ans += costr;
for(int i=0;i<K;i++)
dq.pop_back();
}
}
if(dq.size()>0)
ans += min(min(N,dq.back()*2),min(N,(L-dq[0]*2)));
return ans;
}
