求说明Subtask #1没过
查看原帖
求说明Subtask #1没过
1010979
Rightit楼主2024/8/7 16:28
#include<bits/stdc++.h>
using namespace std;
int m,n,mid,ans=0;
int a[1000005],b[1000005]; //a学校线,b学生线 
int main()
{
	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+n+1);//小到大 
	for (int i=1;i<=m;i++)
	{
		int l=0,r=n+1;//左右区间 	
		while(l<r)
		{
			mid=(l+r)/2;
			if(a[mid]<=b[i]) l=mid+1;
			else r=mid;
		}
		if(b[i]<=a[1]) ans+=a[1]-b[i];
		else ans+=min(abs(a[l-1]-b[i]),abs(a[l]-b[i]));//求差 
	}
	cout<<ans; 
	return 0;
}
2024/8/7 16:28
加载中...