This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <algorithm>
using namespace std;
int v1[100005],v2[100005],n,m,sol=-1;
void cb(int st,int dr){
if(st>dr)
return;
int mid=(st+dr)/2;
int point=1;
for(int i=1;i<=n;i++){
if(point>m){
cb(mid+1,dr);
return;
}
while(abs(v1[i]-v2[point])>mid){
point++;
if(point==m+1){
cb(mid+1,dr);
return;
}
}
point++;
}
sol=mid;
cb(st,mid-1);
}
int main()
{
cin>>n>>m;
if(n>m){
for(int i=1;i<=n;i++){
cin>>v2[i];
}
for(int i=1;i<=m;i++){
cin>>v1[i];
}
swap(n,m);
}
else{
for(int i=1;i<=n;i++){
cin>>v1[i];
}
for(int i=1;i<=m;i++)
cin>>v2[i];
}
sort(v1+1,v1+n+1);
sort(v2+1,v2+m+1);
cb(0,1000000000);
cout<<sol;
return 0;
}
/*
4 3
2 39 41 45
39 42 46
2 3
2 3
1 2 3
5 5
7 6 1 2 10
9 11 6 3 12
3 5
1000000000 1000000000 1000000000
0 0 0 0 1
*/
# | 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... |