MnZn 刚学 OI WA 50pts 求调
查看原帖
MnZn 刚学 OI WA 50pts 求调
566289
RP_INT_MAX楼主2023/4/7 22:43
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=200010,oo=0x3f3f3f3f;
int n,m;
int a[N],b[N];
struct node{
	int id,ld,rd;
	bool operator<(const node&b)const {return ld^b.ld?ld<b.ld:rd<b.rd;}
}c[N];
signed main () {
//	freopen("hole.in","r",stdin);
//	freopen("hole.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;++i) cin>>a[i];
	for(int i=1;i<=m;++i) cin>>b[i];
	sort(a+1,a+1+n);
	sort(b+1,b+1+m);
	b[0]=-oo,b[m+1]=oo;
	for(int i=1;i<=n;++i) {
		c[i].id=i;
		c[i].ld=a[i]-b[upper_bound(b+1,b+1+m,a[i])-b-1];
		c[i].rd=b[upper_bound(b+1,b+1+m,a[i])-b]-a[i];
	}
	sort(c+1,c+1+n);
	int mx=0,ans=oo;
	for(int i=n;i>0;--i) {
		ans=min(ans,min(2*mx+c[i].ld,mx+2*c[i].ld));
		mx=max(mx,c[i].rd);
	}
	cout<<ans<<endl;
	return 0;
}
2023/4/7 22:43
加载中...