急急急 为啥2分不对就20分啊 急急急
查看原帖
急急急 为啥2分不对就20分啊 急急急
866969
telankesi楼主2022/12/24 17:24
#include <stdio.h>
#include <math.h>
int main() {
	int m, n;
	scanf("%d %d", &m, &n);
	int a[100010];
	int b[100010];
	for (int i = 1; i <= m; i++) {
		scanf("%d", &a[i]);
	}
	for (int i = 1; i <=m-1 ; i++) {
		for (int j = i + 1; j <= m; j++) {
			if (a[j] < a[i]) {
				int k = a[i];
				a[i] = a[j];
				a[j] = k;
			}
		}
	}
	for (int i = 0; i < n; i++) {
		scanf("%d", &b[i]);
	}
	
	long long sum = 0;

	for (int i = 0; i < n; i++) {
		int l = 0, r = n - 1, t;
		while (l<=r) {
			t = (l + r) / 2;
			if (a[t] >= b[i])r = t - 1;
			else l = t + 1;
		}
		int x = abs(a[l] - b[i]);
		int y = abs(a[r] - b[i]);
		sum +=  x < y ? x : y;
		
	}
	printf("%lld", sum);
	return 0;

}
2022/12/24 17:24
加载中...