제출 #884678

#제출 시각아이디문제언어결과실행 시간메모리
884678NeroZein선물상자 (IOI15_boxes)C++17
100 / 100
615 ms206868 KiB
#include "boxes.h"
#include "bits/stdc++.h"
 
using namespace std; 
 
long long delivery(int N, int K, int L, int p[]) {
  vector<int> vl, vr; 
  for (int i = 0; i < N; ++i) {
    if (p[i] <= L / 2) vl.push_back(p[i]);
    else vr.push_back(p[i]); 
  }
  sort(vl.begin(), vl.end());
  sort(vr.begin(), vr.end()); 
  vector<long long> sum(K), sum2(K);
  int sl = (int) vl.size(), sr = (int) vr.size();
  for (int i = 0; i < sl; ++i) {
    sum[i % K] += vl[i] * 2; 
  }
  for (int i = 0; i < sr; ++i) {
    sum2[i % K] += (L - vr[i]) * 2; 
  }
  long long ret = (!sl ? 0 : sum[(sl - 1) % K]);
  ret += sum2[0];
  for (int i = 1; i < K; ++i) {
    long long tmp = L;
    if (sl - i - 1 >= 0) {
      tmp += sum[(sl - i - 1) % K];
    }
    tmp += sum2[K - i];
    ret = min(ret, tmp); 
  }
  return ret; 
}
#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...