咋就错了?
源码:
#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