为啥我的排序+二分只有70分呀
查看原帖
为啥我的排序+二分只有70分呀
1196571
sky_233楼主2024/3/18 21:12
#include<bits/stdc++.h>
using namespace std;
int m, n;
int a[100001];
int b[100001];
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];
	}
	long long sum = 0;
	sort(a, a + m);
	for (int i = 0; i < n; i++) {
		int l = -1, r = m;
		long long mid;
		while (l +1< r) {
			mid = (l + r) / 2;
			if (a[mid] <= b[i]) {
				l = mid;
			}
			else {
				r = mid;
			}
		}
		
		sum = sum + min(abs(a[l]-b[i]),abs(a[r]-b[i]));
	}
	cout << sum;
	return 0;
}
2024/3/18 21:12
加载中...