Submission #1324032

#TimeUsernameProblemLanguageResultExecution timeMemory
1324032sh_qaxxorov_571Boxes with souvenirs (IOI15_boxes)C++20
Compilation error
0 ms0 KiB
#include "souvenirs.h"
#include <vector>
#include <algorithm>

using namespace std;

typedef long long ll;

/**
 * Aman uchun minimal vaqtni hisoblash funksiyasi.
 * N - jamoalar soni, K - sig'im, L - aylana uzunligi.
 */
ll delivery(int N, int K, int L, int positions[]) {
    // pre[i] - dastlabki i ta jamoaga soat yo'nalishi bo'yicha borib kelish vaqti
    vector<ll> pre(N + 1, 0);
    // suf[i] - oxirgi i ta jamoaga soat yo'nalishiga qarshi borib kelish vaqti
    vector<ll> suf(N + 1, 0);

    // Soat yo'nalishi bo'yicha DP
    for (int i = 1; i <= N; i++) {
        int dist = positions[i - 1];
        if (i <= K) {
            pre[i] = 2LL * dist;
        } else {
            pre[i] = pre[i - K] + 2LL * dist;
        }
    }

    // Soat yo'nalishiga qarshi DP
    for (int i = 1; i <= N; i++) {
        int dist = L - positions[N - i];
        if (i <= K) {
            suf[i] = 2LL * dist;
        } else {
            suf[i] = suf[i - K] + 2LL * dist;
        }
    }

    // Holat 1: Hech qanday to'liq aylanishsiz (hamma yo o'ngdan, yo chapdan boradi)
    ll ans = 1e18; // Juda katta son
    for (int i = 0; i <= N; i++) {
        ans = min(ans, pre[i] + suf[N - i]);
    }

    // Holat 2: Bitta to'liq aylanish orqali K ta jamoani qoplash
    // i ta jamoa o'ngdan, j ta jamoa chapdan, o'rtadagi K ta jamoa bir aylanishda
    for (int i = 0; i <= N - K; i++) {
        ans = min(ans, pre[i] + suf[N - K - i] + (ll)L);
    }

    return ans;
}

Compilation message (stderr)

boxes.cpp:1:10: fatal error: souvenirs.h: No such file or directory
    1 | #include "souvenirs.h"
      |          ^~~~~~~~~~~~~
compilation terminated.