micmic @ 2022-04-01 15:50:37
#include<iostream>
#include<algorithm>
#include<functional>
using namespace std;
int m,n; //m学校 n学生
int a[100005]; //分数线
int b[100005]; //估分
//要求学校的分数线和估分相差最小,求这个相差值的和
int cnt;
int main(){
cin>>m>>n;
for(int i=0;i<m;i++)
cin>>a[i];
for(int i=0;i<n;i++)
cin>>b[i];
sort(a,a+m);
sort(b,b+n);
int k;
for(int i=0;i<n;i++){
//找出第一个大于等于b[i]的分数线a[k],那么要找的差值
//一定是a[k]-b[i] 或 b[i]-a[k-1]
k=lower_bound(a,a+m,b[i])-a;
cnt+=min(a[k]-b[i],b[i]-a[k-1]);
}
cout<<cnt;
}