#include<bits/stdc++.h>
using namespace std;
#define int long long 
vector<int>a,b;
bool solve(int slsh){
    int pos=0;
    for(int q=0;q<a.size();q++){
        if(pos>=b.size())return false;
        while(pos<b.size()){
            if(abs(a[q]-b[pos])>slsh)pos++;
            else{
                pos++;
                break;
            }
        }
        if(abs(a[q]-b[pos-1]>slsh))return false;
    }
    return true;
}
signed main(){
    int n,m;
    cin>>n>>m;
    for(int q=1;q<=n;q++){
        int x;
        cin>>x;
        a.push_back(x);
    }
    for(int q=1;q<=m;q++){
        int x;
        cin>>x;
        b.push_back(x);
    }
    sort(a.begin(),a.end());
    sort(b.begin(),b.end());
    if(n>m){
        swap(a,b);
    }
    int l=0;
    int r=1e9+1;
    int ans=-1;
    while(l<=r){
        int mid=(l+r)/2;
        if(solve(mid)){
            ans=mid;
            r=mid-1;
        }
        else{
            l=mid+1;
        }
    }
    cout<<ans<<endl;
}
| # | 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... |