题解里提到了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;
}