社区讨论

70求调,必关

P1678烦恼的高考志愿参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhjd5af3
此快照首次捕获于
2025/11/04 00:37
4 个月前
此快照最后确认于
2025/11/04 00:37
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long m,n,a[100005],f[100005],sum,l,r,mid,t,a1,a2,s1,s2;
int main(){
	cin>>m>>n;
	for(int i=1;i<=m;i++){
		cin>>a[i];
	}
    sort(a+1,a+m+1);
	for(int i=1;i<=n;i++){
		cin>>f[i];
		l=1;
		r=m;
		a1=a2=s1=s2=0;
		t=f[i];
		while(l<=r){
			mid=(l+r)/2;
			if(a[mid]>=t){
				a1=mid;
				r=mid-1;
			}
			else{
				l=mid+1;
			}
		}
		l=1;
		r=m;
		while(l<=r){
			mid=(l+r)/2;
			if(a[mid]<=t){
				a2=mid;
				l=mid+1;
			}
			else{
				r=mid-1;
			}
		}
		s1=abs(a[a1]-t);
		s2=abs(a[a2]-t);
		sum+=min(s1,s2);
	}
	cout<<sum;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...