求大佬指点
查看原帖
求大佬指点
410624
woqifeile楼主2021/1/20 21:04
#include<iostream>
#include<algorithm>
using namespace std;
int stdl[100020];
int school[100020];
int main()
{
	int n, m;
	cin >> m >> n;
	for (int i = 0; i < m; i++)
		cin >> school[i];
	for (int i = 0; i < n; i++)
		cin >> stdl[i];
	sort(school, school + m);
	sort(stdl, stdl + n);
	long long int sum=0;
	int sch = 0;
	for (int i = 0; i < n; i++) {
		for (sch; abs(school[sch] - stdl[i]) >= abs(school[sch + 1] - stdl[i]); sch++);
		sum += abs(school[sch] - stdl[i]);
	}
	cout << sum<<endl;
	return 0;
}

/*m所学校,n个学生

  • 第二行学校,第三行学生估分

  • 输出不满意度之和*/

    这个,在

    for (sch; abs(school[sch] - stdl[i]) >= abs(school[sch + 1] - stdl[i]); sch++);
    

    这一步中,我之前用的>而不是>=,就一直导致WA,无意中改成>=就过了,可以麻烦大佬们解释一下下嘛?我的想法是当这个分差相同的时候,两个学校都一样,没区别。

2021/1/20 21:04
加载中...