70分,二分,求助
查看原帖
70分,二分,求助
1269776
52hertz_yh楼主2024/5/8 13:07
#include<bits/stdc++.h>
using namespace std;
long long n,k;
long long a[10000007],b[10000007],ans,mid,c,d,e,q,o;
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	sort(a+1,a+n+1);
	for(int i=1;i<=k;i++)
	cin>>b[i];
	while(k)
	{
		int l=0,r=n;
		while(l+1<r)
		{
			mid=(l+r)/2;
			if(a[mid]>b[k])r=mid;
			else l=mid;
		}
		e=abs(b[k]-a[mid-1]);
		c=abs(b[k]-a[mid]);
		d=abs(b[k]-a[mid+1]);
		o=min(e,c);
		q=min(o,d);
		ans+=q;	
		k--;
	}
	cout<<ans<<endl;
	return 0;
}
2024/5/8 13:07
加载中...