代码如下:
#include<bits/stdc++.h>
#include<math.h>
#include<algorithm>
using namespace std;
struct s
{
long long fen;
long long line;
}c[1000003];
bool com(s a,s b)
{
return a.line<b.line;
}
int n,m;
int er(int x)
{
int star=0,end=n+1;
int mid=(star+end)/2;
while(star+1<end)
{
if(c[mid].line==x)return 0;
else if(c[mid].line>x)
{
end=mid;
mid=(star+end)/2;
}
else
{
star=mid;
mid=(star+end)/2;
}
}
return min(abs(x-c[mid].line),abs(c[mid+1].line-x));
}
int main()
{
c[0].line=-1000;
cin>>n>>m;
long long ans=0;
for(int i=1;i<=n;i++)
{
cin>>c[i].line;
}
sort(c+1,c+n+1,com);
for(int i=0;i<m;i++)
{
cin>>c[i].fen;
ans+=er(c[i].fen);
}
printf("%lld",ans);
return 0;
}