60分求助!
查看原帖
60分求助!
504142
micmic楼主2022/4/1 15:50
#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;
}
2022/4/1 15:50
加载中...