#include<bits/stdc++.h>
#include<math.h>
#define _USE_MATH_DEFINES
using namespace std;
/**struct node
{
long long idx;
long long dis;
node(){}
node(long long _idx,long long _dis)
{
idx=_idx;
dis=_dis;
}
bool operator<(const node &tmp)const{
return dis>tmp.dis;
}
};**/
const long long maxn=1e5+10;
const long long mod=1e9+7;
int main()
{
long long n,m;
cin>>n>>m;
long long L[n];
long long R[m];
map<long long,long long>pl;
map<long long,long long>pr;
for(long long i=0;i<n;i++)
{
cin>>L[i];
pl[L[i]]++;
}
for(long long j=0;j<m;j++)
{
cin>>R[j];
pr[R[j]]++;
}
sort(L,L+n);
sort(R,R+m);
if(n==m)
{
long long mx=0;
for(long long i=0;i<n;i++)
{
mx=max(mx, abs(L[i]-R[i]));
}
cout<<mx<<endl;
}
else
{
if(n<m)
{
long long j=-1;
long long ans=0;
for(long long i=0;i<n;i++)
{
long long raz=2e9;
while(j+1<m-(n-i-1) && abs(L[i]-R[j+1])<=raz)
{
raz=abs(L[i]-R[j+1]);
j++;
if(pl[L[i]]>1)
{
pl[L[i]]--;
break;
}
}
///cout<<j<<" ";
ans=max(ans, raz);
}
cout<<ans<<endl;
}
else
{
long long j=-1;
long long ans=0;
for(long long i=0;i<m;i++)
{
long long raz=2e9;
while(j+1<n-(m-i-1) && abs(L[j+1]-R[i])<=raz)
{
raz=abs(L[j+1]-R[i]);
j++;
if(pr[R[i]]>1)
{
pr[R[i]]--;
break;
}
}
ans=max(ans, raz);
}
cout<<ans<<endl;
}
}
return 0;
}
/*5 5
7 6 1 2 10
9 11 6 3 12
*/
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
85 ms |
14316 KB |
Output is correct |
2 |
Correct |
132 ms |
14284 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
122 ms |
14232 KB |
Output is correct |
2 |
Correct |
126 ms |
14244 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
596 KB |
Output is correct |
2 |
Incorrect |
6 ms |
940 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
596 KB |
Output is correct |
2 |
Incorrect |
6 ms |
980 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
4 ms |
852 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
4 ms |
852 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
5 ms |
852 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
109 ms |
11492 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
119 ms |
12680 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
101 ms |
11304 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |