Submission #782035

#TimeUsernameProblemLanguageResultExecution timeMemory
782035TeaTimeCipele (COCI18_cipele)C++17
90 / 90
693 ms8388 KiB
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <set>

using namespace std;

#define fastInp cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);

typedef long long ll;
typedef long double ld;

ll n, m;
vector<ll> vec1, vec2;

const ll INF = 1'000'000'100;

bool check(int val) {
    multiset<ll> st;
    for (auto c : vec2) st.insert(c);
    sort(vec1.begin(), vec1.end());

    for (auto c : vec1) {
        while (true) {
            if (st.empty()) return 0;

            ll v = (*st.begin());
            st.erase(st.begin());

            if (abs(c - v) > val) continue;
            break;
        }
    }

    return 1;
}

int main() {
    fastInp;

    cin >> n >> m;
    vec1.resize(n);
    vec2.resize(m);

    for (auto &c : vec1) cin >> c;
    for (auto &c : vec2) cin >> c;

    if (n > m) {
        swap(n, m);
        swap(vec1, vec2);
    }

    int l = -1, r = INF;
    while (r - l > 1) {
        ll mid = (ll(l) + r) / 2;

        if (check(mid)) {
            r = mid;
        } else {
            l = mid;
        }
    }

    cout << r;

    return 0;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...