超时,0分玄关,求助,不知道为什么
查看原帖
超时,0分玄关,求助,不知道为什么
1551928
wonderfultimeCLI楼主2025/7/24 14:18
#include <bits/stdc++.h>
using namespace std;
int a[1000005];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int  n, m;
	cin >> m >> n ;
	for (int i = 0; i < m; i++) {
		cin >> a[i];
	}
	int cnt = 0;
	for (int i = 0; i < n; i++) {
		int num;
		cin >> num;
		int L, R;
		L = 0;
		R = m - 1;
		int jg1, jg2;
		while (L < R) {
			int z = (L + R) / 2;
			if (a[z] >= num) {
				R = z;
			} else if (a[z] < num) {
				L = z + 1;
			}
		}
		jg1 = max(num, a[L]) - min(num, a[L]);
		L = 0;
		R = m - 1;
		while (L < R) {
			int z = (L + R + 1) / 2;
			if (a[z] <= num) {
				L = z;
			} else if (a[z] > num) {
				R = z - 1;
			}
		}
		jg2 = max(num, a[L]) - min(num, a[L]);
		cnt += min(jg1, jg2);
	}
	cout << cnt;
	return 0;
}
2025/7/24 14:18
加载中...