Submission #756578

#TimeUsernameProblemLanguageResultExecution timeMemory
756578pccCipele (COCI18_cipele)C++14
90 / 90
66 ms3456 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pll pair<ll,ll>
#define fs first
#define sc second

const int mxn = 1e5+10;
int a[mxn],b[mxn];
int n,m;

bool f(ll k){
	deque<int> dq;
	for(int i = 0;i<m;i++)dq.push_back(b[i]);
	for(int i = 0;i<n;i++){
		while(!dq.empty()&&a[i]-dq.front()>k)dq.pop_front();
		if(dq.empty())return false;
		if(abs(a[i]-dq.front())>k)return false;
		dq.pop_front();
	}
	return true;
}

int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i = 0;i<n;i++){
		cin>>a[i];
	}
	for(int i = 0;i<m;i++)cin>>b[i];
	if(n>m){
		swap(a,b);
		swap(n,m);
	}
	sort(a,a+n);
	sort(b,b+m);
	int l = 0,r = 1e9+10;
	while(l != r){
		int mid = (l+r)>>1;
		if(f(mid))r = mid;
		else l = mid+1;
	}
	cout<<l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...