Submission #756588

#TimeUsernameProblemLanguageResultExecution timeMemory
756588PringCipele (COCI18_cipele)C++14
45 / 90
421 ms596 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
typedef pair<int, int> pii;

const int MXN = 5005;
int n, m, a[MXN], b[MXN];
bool flag;
bitset<MXN> bb;

bool check(int x) {
    bb.reset();
    for (int i = 0; i < m; i++) {
        bool flag = true;
        for (int j = 0; j < n; j++) {
            if (bb[j]) continue;
            if (abs(a[j] - b[i]) <= x) {
                bb[j] = true;
                flag = false;
                break;
            }
        }
        if (flag) return false;
    }
    return true;
}

int32_t main() {
    cin.tie(0) -> sync_with_stdio(false);
    cin >> n >> m;
    flag = (n >= m);
    if (flag) {
        for (int i = 0; i < n; i++) cin >> a[i];
        for (int i = 0; i < m; i++) cin >> b[i];
    } else {
        for (int i = 0; i < n; i++) cin >> b[i];
        for (int i = 0; i < m; i++) cin >> a[i];
        swap(n, m);
    }
    sort(a, a + n);
    sort(b, b + m);
    int l = -1, r = INT_MAX;
    while (l + 1 < r) {
        int mid = (l + r) >> 1;
        (check(mid) ? r : l) = mid;
    }
    cout << r << endl;
    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...