| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 979585 | kilkuwu | Boxes with souvenirs (IOI15_boxes) | C++17 | 1 ms | 348 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "boxes.h"
#include <bits/stdc++.h>
#ifdef LOCAL
#include "template/debug.hpp"
#else 
#define dbg(...) ;
#define timer(...) ;
#endif
long long delivery(int N, int K, int L, int p[]) {
  int split = std::upper_bound(p, p + N, L / 2) - p;
  int left = split;
  int right = split;
  std::vector<long long> dp(N);
  for (int i = N - 1; i >= split; i--) {
    if (i + K < N) {
      dp[i] = dp[i + K] + (L - p[i]) * 2;
    } else {
      dp[i] = (L - p[i]) * 2;
    }
  }
  for (int i = 0; i < split; i++) {
    if (i - K >= 0) {
      dp[i] = dp[i - K] + p[i] * 2;
    } else {
      dp[i] = p[i] * 2;
    }
  }
  long long ans = split > 0 ? dp[split - 1] : 0;
  ans += (split < N) ? dp[split] : 0;
  long long round = 1e18;
  for (int i = split; i < N && i - K + 1 < split; i++) {
    long long cand = L;
    cand += split + 1 < N ? dp[split + 1] : 0;
    cand += i - K >= 0 ? dp[i - K] : 0;
    round = std::min(round, cand);
  }
  return std::min(ans, round);
}
#ifdef LOCAL
int main() {
  int N, K, L, i;
  std::cin >> N >> K >> L;
  int *p = (int*)malloc(sizeof(int) * (unsigned int)N);
  for (i = 0; i < N; i++) {
    std::cin >> p[i];
  }
  std::cout << delivery(N, K, L, p) << "\n";
  return 0;
}
#endif
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
