今天我学学学学学二分!
#include<bits/stdc++.h>
using namespace std;
const int N=100000+9;
int arr[N]={0};
int brr[N]={0};
int main()
{
int m,n;
cin>>m>>n;
for(int i=0;i<m;i++)
{
cin>>arr[i];
}
sort(arr,arr+m);
long long int sum=0;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
int q=0;
q=lower_bound(arr,arr+m,x)-arr;
if(q==m+1)
{
sum+=-arr[q]+x;
}
else if(q==0)
{
sum+=arr[0]-x;
}
else
{
sum+=min(abs(arr[q]-x),abs(x-arr[q-1]));
}
}
cout<<sum<<endl;
system("pause");
return 0;
}
别管了,lower_bound和upper_bound就是好用!!!