社区讨论

20分求助!

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

讨论操作

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

当前回复
7 条
当前快照
1 份
快照标识符
@lo3k0iqh
此快照首次捕获于
2023/10/24 07:53
2 年前
此快照最后确认于
2023/10/24 07:53
2 年前
查看原帖
题解里提到了lower_bound我就用的这个20分!
CPP
#include <bits/stdc++.h>
using namespace std;
int a[11451419],b[11451419];
int main()
{
	int m,n,ans = 0;
	cin >> m >> n;
	for(int i = 1;i <= m;i ++)
	{
		cin >> a[i];
	}
	sort(a + 1,a + n + 1);
	for(int i = 1;i <= n;i ++)
	{
		cin >> b[i];
		int temp = lower_bound(a + 1,a + n + 1,b[i]) - a;
		if(temp == m + 1)
		{
			ans += b[i] - a[m];
		}
		else if(temp == 1)
		{
			ans += a[1] - b[i];
		}
		else
		{
			ans += min(abs(a[temp] - b[i]),abs(b[i] - a[temp - 1]));
		}	
	}
	cout << ans;
	return 0;
}

回复

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

正在加载回复...