#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... |