20pts,求助
查看原帖
20pts,求助
1035561
guoziqi201010楼主2024/11/27 22:29

测试点情况如下:

代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[1001000], b[10010000];
int m, n;
bool cmp(int a, int b)
{
	return a < b;
}
int find(int x)
{
	int aans=1e9;
	int  L = 1, R = n+1, mid;
	while (L < R)
	{
		int mid = L + (R - L) / 2;
		if (a[mid] >= x)
		{
			R = mid;
			int tmp = a[mid] - x;
			aans = min(tmp, aans);
		}
		else if (a[mid] < x)
		{
			L = mid + 1;
			int tmp = abs(a[mid] - x);
			aans = min(tmp, aans);
		}
	}
	return aans;
}
int main()
{
	
	cin >> m >> n;
	for (int i = 1; i <= m; i++)
	{
		cin >> a[i];
	}
	for (int i = 1; i <= n; i++)
	{
		cin >> b[i];
	}
	unsigned long long ans = 0;
	sort(a + 1, a + 1 + n, cmp);
	for (int i = 1; i <= n; i++)
	{
		ans += find(b[i]);
	}
	cout << ans;
}

调了半个多小时了还没有调出来。

求助,玄关

QWQ,大佬救救,帮忙找找问题吧!QWQ,大佬救救,帮忙找找问题吧!

2024/11/27 22:29
加载中...