70分死活不过 求教如何在此基础ac
查看原帖
70分死活不过 求教如何在此基础ac
1366676
dhhhhh1235楼主2025/1/21 22:19
#include<bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e5+10;
int s[N],x[N];
int sum=0;
int binary_search(int q[],int len,int x)
{
	int l=0,r=len+1;
	while(l+1<r)
	{
		int mid=l+r>>1;
		if(q[mid]<=x) l=mid;
		else r=mid;
	}
	if(q[l]==x) return 0;
	else  return min(abs(q[l]-x),abs(q[r]-x));	
}

int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>m>>n;
	for(int j=1;j<=m;j++) cin>>s[j];
	for(int i=1;i<=n;i++) cin>>x[i];
	sort(x+1,x+1+n);
	sort(s+1,s+1+m);
	for(int i=1;i<=n;i++)
	{
		int res=binary_search(s,n,x[i]);
		sum+=res;	
	}
	cout<<sum<<endl;
	return 0;
	
}
2025/1/21 22:19
加载中...