#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second 
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define make_unique(x) sort(all(x)), x.erase(unique(all(x)), x.end())
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
mt19937_64 Rng(chrono::steady_clock::now().time_since_epoch().count());
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int N = 1e5 + 200;
const int M = 1e6;
const int inf = 2e9 + 3;
const ll INF = 1e18;
int n, m, l[N], r[N];
bool check(int D) {
    for (int i = 1, j = 1; i <= n; ++i) {
        int found = -1;
        while (j <= m && abs(l[i] - r[j]) > D) {
            j++;
        }
        if (j == m + 1) {
            return false;
        }
        else {
            //l[i] --- r[j]
            j++;
        }
    }
    return true;
}
int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> m;
    for (int i = 1; i <= n; ++i) {
        cin >> l[i];
    }
    for (int i = 1; i <= m; ++i) {
        cin >> r[i];
    }
    sort(l + 1, l + n + 1);
    sort(r + 1, r + m + 1);
    if (n > m) {
        swap(n, m);
        swap(l, r);
    }
    int L = 0, R = inf, ans = inf;
    while (L <= R) {
        int M = (L + R) / 2;
        if (check(M) == true) { //answer <= M
            ans = M;
            R = M - 1;
        }
        else {
            L = M + 1;
        }
    }
    cout << ans << '\n';
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |