蒟蒻求助,70分
查看原帖
蒟蒻求助,70分
470413
NightSky_Chaser楼主2021/8/16 15:04

咋就错了? 源码:

#include <bits/stdc++.h>

using namespace std;

int a[100001], b[100001];
int m, n, ans = 0;

int sovel(int a[])
{
	int mid,j;
	for (j = 1;j <= n;++j)
	{
		int left = 0, right = m + 1;
		while (left < right)
		{
			mid = (left + right) / 2;
			if (a[mid] <= b[j]) left = mid + 1;
			else right = mid;
		}
		ans += abs(a[left - 1] - b[j]) < abs(a[left] - b[j]) ? abs(a[left - 1] - b[j]) : abs(a[left] - b[j]);
	}
	return ans;
}

int main()
{
	int i;
	cin >> m >> n;
	for (i = 1;i <= m;++i)
		cin >> a[i];
	for (i = 1;i <= n;++i)
		cin >> b[i];
	sort(a + 1, a + m + 1);
	cout << sovel(a);
	return 0;
}

https://www.luogu.com.cn/team/36438

2021/8/16 15:04
加载中...