Submission #1195681

#TimeUsernameProblemLanguageResultExecution timeMemory
1195681madamadam3Boxes with souvenirs (IOI15_boxes)C++20
0 / 100
0 ms328 KiB
#include "boxes.h"
#include <bits/stdc++.h>

using namespace std;

#define FOR(i, a, b) for (int i = a; i < b; i++)
#define pb push_back
#define all(x) (x).begin(), (x).end()

typedef long long ll;
using vi = vector<int>;
using vl = vector<ll>;

// probably binary search?

ll n, k, l;
vl p;
vl nxt, prev;

ll dist(ll p1, ll p2) {
    if (p1 <= p2) return p2 - p1;
    else {
        return (l - p1) + p2; 
    }
}

ll delivery(int N, int K, int L, int P[]) {
    n = N, k = K, l = L;
    // cout << "N = " << n << "K = " << k << " L = " << L << "\n";
    FOR(i, 0, n) p.pb(P[i]);

    // FOR(i, 0, n) {
    //     FOR(j, 0, n) {
    //     cout << "L = " << L << " Dist between " << i << " and " << j << " = " << dist(i, j) << "\n";
    //     }
    // }

    // return min(*max_element(all(p)) + dist(*max_element(all(p)), 0), l - *min_element(all(p)) + dist(*min_element(all(p)), 0));
    ll max_pos = *max_element(all(p));
    ll min_pos = *min_element(all(p));
    ll min_dist = dist(min_pos, l);

    return min({l, 2LL * max_pos, 2LL * min_dist});
}
#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...