제출 #667220

#제출 시각아이디문제언어결과실행 시간메모리
667220atigun선물상자 (IOI15_boxes)C++11
100 / 100
470 ms198124 KiB
#include<bits/stdc++.h>
#include "boxes.h"
using namespace std;
typedef long long ll;

vector<ll> dpl, dpr;

ll delivery(int N, int K, int L, int p[]){
  dpl.assign(N, 1e18), dpr.assign(N, 1e18);
  dpl[0] = 2*p[0], dpr[N-1] = 2*(L-p[N-1]);
  for(int i = 1; i < N; i++)
    dpl[i] = (i-K>=0?dpl[i-K]:0) + p[i] + p[i];
  for(int i = N-2; i >= 0; i--)
    dpr[i] = (i+K<N?dpr[i+K]:0) + L-p[i] + L-p[i];
  ll ans = 1e18;
  for(int i = 0; i <= N; i++)
    ans = min(ans, (i-1>=0?dpl[i-1]:0) + (i<N?dpr[i]:0));
  for(int l = 0, r = min(N-1, K-1); r < N; l+= 1, r+= 1)
    ans = min(ans, L + (l-1>=0?dpl[l-1]:0) + (r+1<N?dpr[r+1]:0));
  return ans;
}
#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...