제출 #219779

#제출 시각아이디문제언어결과실행 시간메모리
219779Nightlight선물상자 (IOI15_boxes)C++14
0 / 100
5 ms384 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;

long long dpL[10000005], dpR[10000005];

long long delivery(int N, int K, int L, int p[]) {
  for(int i = 1; i <= N; i++) {
    dpL[i] = ((long long) p[i]) << 1;
    if(i > K) dpL[i] += dpL[i - K];
  }
  for(int i = N; i > 0; i--) {
    dpR[i] = ((long long) L - p[i]) << 1;
    if(N - i > K) dpR[i] += dpR[i + K]; 
  }
  long long ans = 1e18;
  for(int i = 0; i <= N; i++) {
    ans = min(ans, dpL[i] + dpR[i + 1]);
  }
  long long res;
  for(int j = 1; j <= N / K; j++) {
    res = 1e18;
    for(int i = K * j + 1; i <= N; i++) {
      res = min(res, dpL[i - K * j - 1] + dpR[i] + j * L);
    }
    if(res >= ans) return ans;
    else ans = res;
  }
  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...