测试点情况如下:

代码如下:
#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,大佬救救,帮忙找找问题吧!