Submission #1216958

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

long long dist(int x, int L ){
    return (x + L) % L;
}

long long delivery(int N, int K, int L, int pos[]) {
    sort(pos, pos+N, [&](int a, int b){
        return dist(a) < dist(b);
    });

    vector<int> p(pos, pos+N);
    vector<int> q = p;
    reverse(q.begin(), q.end());

    vector<long long> l(N+1, 0), r(N+1, 0);
    for (int i = 1; i <= N; i++) {
        long long d = dist(p[i-1] - 0, L);
        if (i <= K) {
            l[i] = 2*d;
        } else {
            l[i] = l[i-K] + 2*d;
        }
    }

    for (int i = 1; i <= N; i++) {
        long long d = (L - q[i-1]) % L;
        if (i <= K) {
            r[i] = 2*d;
        } else {
            r[i] = r[i-K] + 2*d;
        }
    }

    long long ans = LLONG_MAX;
    for (int s = 0; s <= N; s++) {
        ans = min(ans, l[s] + r[N-s]);
    }

    int M = min(K, N);
    for (int t = 0; t + M <= N; t++) {
        long long cost1 = l[t];        
        long long cost2 = (long long)L;
        long long cost3 = r[N - (t+M)];   
        ans = min(ans, cost1 + cost2 + cost3);
    }

    return ans;
}

Compilation message (stderr)

boxes.cpp: In lambda function:
boxes.cpp:11:20: error: too few arguments to function 'long long int dist(int, int)'
   11 |         return dist(a) < dist(b);
      |                ~~~~^~~
boxes.cpp:5:11: note: declared here
    5 | long long dist(int x, int L ){
      |           ^~~~
boxes.cpp:11:30: error: too few arguments to function 'long long int dist(int, int)'
   11 |         return dist(a) < dist(b);
      |                          ~~~~^~~
boxes.cpp:5:11: note: declared here
    5 | long long dist(int x, int L ){
      |           ^~~~