Submission #1246416

#TimeUsernameProblemLanguageResultExecution timeMemory
1246416SpyrosAlivBoxes with souvenirs (IOI15_boxes)C++20
Compilation error
0 ms0 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long

int n, k, l;
const ll INF = 1e13;

long long delivery(int N, int K, int L, int p[]) {
    n = N;
    k = K;
    l = L;
    ll ans = n * L;
    vector<int> ord;
    for (int i = 0; i < n; i++) ord.push_back(i);
    do {
        vector<ll> dp(k+1);
        for (int i = 0; i < k; i++) dp[i] = INF;
        dp[k] = 0;
        ll pos = 0;
        for (int i = 0; i < n; i++) {
            ll nxt = p[ord[i]];
            ll minDis = min(abs(nxt - pos), L - abs(nxt - pos));
            vector<ll> dp2;
            dp2 = dp;
            dp2[k] = INF;
            for (int kk = 1; kk <= k; kk++) {
                dp2[kk-1] = min(INF, dp[kk] + minDis);
                if (kk < k) dp2[k] = min(dp2[k], dp[kk] + min(pos, L - pos) + min(nxt, L - nxt));
            }
            dp2[k] = min(dp2[k], dp[0] + min(pos, L - pos) + min(nxt, L - nxt));
            pos = p[ord[i]];
            dp = dp2;
        }
        ll minDis = min(pos, L - pos);
        for (int i = 0; i <= k; i++) {
            ans = min(ans, minDis + dp[i]);
        }
    } while (next_permutation(ord.begin(), ord.end()));
    return ans;
}

signed main() {
    int n, k, l; cin >> n >> k >> l;
    int p[n];
    for (int i = 0; i < n; i++) cin >> p[i];
    cout << delivery(n, k, l, p) << "\n";
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccgm836j.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/ccyTEEur.o:boxes.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status