20分求助!
查看原帖
20分求助!
895690
gghack_Nythix楼主2022/12/12 11:53

题解里提到了lower_bound我就用的这个20分!

#include <bits/stdc++.h>
using namespace std;
int a[11451419],b[11451419];
int main()
{
	int m,n,ans = 0;
	cin >> m >> n;
	for(int i = 1;i <= m;i ++)
	{
		cin >> a[i];
	}
	sort(a + 1,a + n + 1);
	for(int i = 1;i <= n;i ++)
	{
		cin >> b[i];
		int temp = lower_bound(a + 1,a + n + 1,b[i]) - a;
		if(temp == m + 1)
		{
			ans += b[i] - a[m];
		}
		else if(temp == 1)
		{
			ans += a[1] - b[i];
		}
		else
		{
			ans += min(abs(a[temp] - b[i]),abs(b[i] - a[temp - 1]));
		}	
	}
	cout << ans;
	return 0;
}
2022/12/12 11:53
加载中...