社区讨论

10pts求调

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@miir4r90
此快照首次捕获于
2025/11/28 19:00
3 个月前
此快照最后确认于
2025/11/29 16:15
3 个月前
查看原帖
实在改不出来了,求教大佬
CPP
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int const N=1e7+50;
ll n,m,c;
ll a[N],b[N];
ll erfen(ll x)
{
	ll l=1,r=n;
	while(l<=r)
	{
		int mid=(l+r)/2;
		if(a[mid]<=x) l=mid+1;
		else r=mid-1;
	}
	return l;
}
signed main()
{
    cin>>m>>n;
    for(ll i=1;i<=m;++i)
    {
    	cin>>a[i];
	}
	ll x;
	for(ll i=1;i<=n;++i)
	{
		cin>>b[i];
	}
	ll ans=0;
	sort(a+1,a+m+1);
	for(ll i=1;i<=n;++i)
	{
		ll l=erfen(b[i]);
		ans=ans+min(abs(a[l-1]-b[i]),abs(a[l]-b[i]));
	}
	cout<<ans;
    return 0;
}

回复

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

正在加载回复...