#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long ll;
const int N = 1000010;
ll m, n, a[N], b[N];
int main()
{
scanf("%lld%lld", &m, &n);
for (int i = 1; i <= m; i++)
scanf("%lld", &a[i]);
for (int i = 1; i <= n; i++)
scanf("%lld", &b[i]);
sort(a + 1, a + m + 1);
ll ans = 0;
for (int i = 1; i <= n; i++)
{
int l = 1, r = m;
while (l < r) {
int mid = (l + r + 1) >> 1;
if (a[mid] < b[i])
l = mid;
else
r = mid - 1;
}
if (l == 0) {
ans += abs(a[1] - b[i]);
} else if (l == m) {
ans += abs(a[m] - b[i]);
} else {
ans += min(abs(a[l] - b[i]), abs(a[l + 1] - b[i]));
}
}
printf("%lld\n", ans);
return 0;
}
我下标从1开始,特判某人分数比所有学校都小时为什么要写if(l==0),l此时不是1吗