100分求解!
查看原帖
100分求解!
1719104
wxr26楼主2025/8/1 15:17

https://www.luogu.com.cn/record/228183631 我的记录

#include <bits/stdc++.h>
using namespace std;

int n, m, a[101000], b[101000], ans = 0;

int main() {
	cin >> n >> m;

	for (int i = 1; i <= n; i++) cin >> a[i];
	for (int i = 1; i <= m; i++) cin >> b[i];

	sort(a + 1, a + n + 1);

	for (int i = 1; i <= m; i++) {

		int r = n + 1, l = 0;

		while (l + 1 != r) {
			int mid = (l + r) / 2;

			if (a[mid] <= b[i]) {
				l = mid;
			} else {
				r = mid;
			}
		}

		if (b[i] <= a[1])
			ans += a[1] - b[i];
		else if (b[i] >= a[n])
			ans += b[i] - a[n];
		else
			ans += min(abs(b[i] - a[l]), abs(a[r] - b[i]));
	}

	cout << ans;
}
2025/8/1 15:17
加载中...