社区讨论

70pts求调

P1678烦恼的高考志愿参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lp16npe9
此快照首次捕获于
2023/11/16 20:44
2 年前
此快照最后确认于
2023/11/16 21:50
2 年前
查看原帖
CPP
#include<bits/stdc++.h>

using namespace std;

typedef long long LL;

const int N = 1e5 + 10;

int n, m;
LL czx[N];
LL gu[N];
LL ans;

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

	for (int i = 1; i <= m; i++)
		cin >> czx[i];

	sort(czx + 1, czx + 1 + m);

	for (int i = 1; i <= n; i++)
		cin >> gu[i];

	for (int i = 1; i <= n; i++)
	{
		LL minn = 0x3f3f3f3f;
		int r = lower_bound(czx + 1, czx + m + 1, gu[i]) - czx;//查找第一个大于等于当前分数的值
		minn = min(minn, abs(czx[r] - gu[i]));
		minn = min(minn, abs(czx[r - 1] - gu[i]));//再找第一个小于当前分数的值 两者取最小
		ans += minn;
	}

	cout << ans << endl;

	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...