45pts,求调
查看原帖
45pts,求调
345657
Hedgehog_210508楼主2022/7/18 16:28

wa了

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define INF 2e15
struct p{
	bool f;
	ll l;
	ll r;
	ll t;
}a[500009];
ll m,n,minl,minr,maxl,maxr;
bool cmp(p &a,p &b){
	return a.t<b.t;
}
int main(){
	ios::sync_with_stdio(false);
	cin>>n>>m;
	for(ll i=1;i<=n;a[i].f=1,i++) cin>>a[i].t;
	for(ll i=n+1;i<=n+m;i++) cin>>a[i].t;
	sort(a+1,a+n+m,cmp);
	ll tmp=0;
	for(ll i=1;i<=n+m;i++){
		if(a[i].f&&tmp) a[i].l=a[i].t-a[tmp].t;
		else if(!a[i].f) tmp=i;
	}
	tmp=n+m+1;
	for(ll i=n+m;i>=1;i--){
		if(a[i].f&&tmp!=n+m+1) a[i].r=a[tmp].t-a[i].t;
		else if(!a[i].f) tmp=i;
	}
	for(ll i=1;i<=n+m;i++){
		if(!a[i].f) continue;
		if(a[i].l) maxl=max(maxl,a[i].l);
		if(a[i].r) maxr=max(maxr,a[i].r);
		if(!a[i].r) minl=max(minl,a[i].l);
		if(!a[i].l) minr=max(minr,a[i].r);
	}
	//cout<<minl<<endl<<minr<<endl<<maxl<<endl<<maxr<<endl;
	cout<<min(minl*2+maxr,minr*2+maxl);
	return 0;
}
2022/7/18 16:28
加载中...