代码在下面,交上去就是不对……
#include<bits/stdc++.h>
using namespace std;
int x[100005],y[100005];
int m,n;
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++){//输入录取分数
cin>>x[i];
}
for(int i=1;i<=n;i++){//输入估分
cin>>y[i];
}
sort(x+1,x+m+1);//排序
int cnt=0;
for(int i=1;i<=n;i++){//为n个学生寻找要循环n次
int l=0,r=m+1;//初始化指针
while(l<r){
int mid=(l+r)/2;//中点
if(x[mid]<=y[i]){//如果你的分够就往上走
l=mid+1;
}
else{//下去吧你
r=mid;
}
}
if(y[i]<=x[1]){//你连最烂的都考不上
cnt+=x[1]-y[i];//你的不满意度我也只能“笑纳”了
}
else{//计算最小的不满意度
cnt+=min(abs(x[l-1]-y[i]),abs(x[l]-y[i]));//不能是负的(abs)
}
}
cout<<cnt;
return 0;
}
好心人请调