70分(牢大坠机力
查看原帖
70分(牢大坠机力
1098781
封禁用户楼主2024/2/22 22:55

标题为了吸引QAQ

#include<bits/stdc++.h>
using namespace std;
int a[int(1e5+5)],b[int(1e5+5)];
int main(){
	long long ans=0,num,n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+n+1);
	for(int i=1;i<=m;i++)
		cin>>b[i];
	int left,right,mid;
	for(int i=1;i<=m;i++){
		left=0,right=n+1;
		while(left+1<right){
			mid=(left+right)/2;
			if(b[i]>=a[mid])
				left=mid;
			else
				right=mid;
		}
		if(abs(b[i]-a[left])<abs(a[right]-b[i]))
			num=abs(b[i]-a[left]);
		else
			num=abs(a[right]-b[i]);
		ans+=num;
	}
	cout<<ans;
    return 0;
}
2024/2/22 22:55
加载中...