Submission #420099

#TimeUsernameProblemLanguageResultExecution timeMemory
420099temurbek_khujaevBoxes with souvenirs (IOI15_boxes)C++17
100 / 100
531 ms70500 KiB
#include "boxes.h"
#include <bits/stdc++.h>

using namespace std;

long long delivery(int N, int K, int L, int p[]) {
    long long ans = 1ll * N * L;
    int mid = lower_bound(p, p + N, (L + 1) / 2) - p;

    for (int i = max(-1, mid - K - 2); i < min(N, mid + K + 2); i++) {
        long long cur = 0;
        int x = i;
        int y = i + 1;
        while (x >= 0) {
            cur += min(L, p[x] * 2);
            x -= K;
        }
        while (y < N) {
            cur += min(L, (L - p[y]) * 2);
            y += K;
        }
        ans = min(ans, cur);
    }
    return ans;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:8:50: warning: conversion from 'long int' to 'int' may change value [-Wconversion]
    8 |     int mid = lower_bound(p, p + N, (L + 1) / 2) - p;
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
#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...