https://www.luogu.com.cn/problem/P1678
寫起來就很舒服 看起來就更舒服
#include<bits/stdc++.h>
using namespace std;
#define N 100005
int main(){
int m, n, a[N], b[N], key, s = 0;
cin >> m >> n;
for(int i=1; i<=m; i++)
cin >> a[i];
sort(a+1, a+m+1);
while(n--){
cin >> key;
int l=0, r=m, mid = l + ((r-l)>>1), flag = 1;
while(l <= r && flag){
mid = l + ((r-l)>>1);
if(a[mid] > key)
r = mid - 1;
else if(a[mid] < key)
l = mid + 1;
else
flag = 0;
}
if(flag){
if(r >= 1 && l >= 1){
if(abs(a[l] - key) < abs(a[r] - key))
s += abs(a[l] - key);
else
s += abs(a[r] - key);
}else if(a[l] >= 1)
s += abs(a[l] - key);
else
s += abs(a[r] - key);
}
}
cout << s;
return 0;
}