其他都AC了,最后一个测试点一直过不了
题目:P1678 烦恼的高考志愿
代码如下:
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=100005;
int n,m,a[N],b,sum;
int b_s(int lf,int rt,int x)
{
while(lf<rt)
{
int mid=(lf+rt)/2;
if(a[mid]>=x) rt=mid;
else lf=mid+1;
}
return lf;
}
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++)
{
cin>>a[i];
}
sort(a+1,a+m+1);
for(int i=1;i<=n;i++)
{
cin>>b;
int sch=b_s(2,m,b);
if(b<=a[1])
{
sum+=a[1]-b;
}
else sum+=min(abs(a[sch]-b),abs(a[sch-1]-b));
}
cout<<sum;
return 0;
}
请各位大佬指出错误。Thanks.