29| 高考志愿

代码实现

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

typedef long long LL;
const int N = 2e5 + 10; 
LL a[N], b[N], ret, m, n;

int main()
{
	cin >>  m >> n;
	for (int i = 1; i <= m; i++) cin >> a[i];
	for (int i = 1; i <= n; i++) cin >> b[i];
	sort(a+1,a+m+1); 
	for (int i = 1; i <= n; i++)
	{
		LL x = b[i];
		// 左边界 
		int l = 1, r = m;
		while(l < r) 
		{
			int mid = (l + r) >> 1;
			if (a[mid] < x)  l = mid + 1;
			else r = mid;
		}
		int retl = l;
		// 右边界
		l = 1, r = m;
		while(l < r) 
		{
			int mid = (l + r + 1) >> 1;
			if (a[mid] > x)  r = mid - 1;
			else l = mid;
		} 
		ret += min(abs(x-a[l]),abs(x-a[retl]));
	}
	cout << ret << endl;
	return 0;
}
相关推荐
地平线开发者5 小时前
J6B vio scenario sample
算法
BothSavage17 小时前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn17 小时前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
烬羽18 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
郝学胜_神的一滴19 小时前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
先吃饱再说1 天前
判断回文字符串,从一行代码到双指针优化
算法
见过夏天1 天前
C++ 基础入门完全指南
c++
黄敬峰2 天前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法