70分,实在改不动了
查看原帖
70分,实在改不动了
406170
Jason_yinkai楼主2022/7/29 16:08
#include<bits/stdc++.h>
using namespace std;
int stu[100005],sch[100005];
int m,n;
int ans;
int main(){
	cin>>m>>n;
	for(int i = 1;i <= m;i++){
		cin>>sch[i];
	}
	for(int i = 1;i <= n;i++){
		cin>>stu[i];
	}
	sort(sch + 1,sch + m + 1);
	for(int i = 1;i <= n;i++){
		int l = 0,r = m + 1;
		int a = 1e9 - 1;
		while(l < r){
			int mid = (l + r) / 2;
			if(sch[mid] == stu[i]){
				a = 0;
				break;
			}
			else if(sch[mid] < stu[i]){
				l = mid + 1;
				a = min(a,abs(sch[mid] - stu[i]));
			}
			else {
				r = mid;
				a = min(a,abs(sch[mid] - stu[i]));
			}
		}
		ans += a;
	}
	cout<<ans;
}

测试点

2022/7/29 16:08
加载中...