80分,求助大佬
查看原帖
80分,求助大佬
297232
六尺之下楼主2020/7/13 12:12

前前后后看了好多遍都不觉得有问题

#include<bits/stdc++.h>
using namespace std;
long long m,n,sum=0;
int main() //m学校数,n学生数,a1学校录取线,b1学生估分 
{
	scanf("%lld%lld",&m,&n);
	long long a1[m+2],b1[n+2];
	for(long long i=1;i<=m;i++) scanf("%lld",&a1[i]);
	for(long long i=1;i<=n;i++) scanf("%lld",&b1[i]);
	sort(a1+1,a1+m+1); sort(b1+1,b1+n+1);
	for(long long i=1;i<=n;i++)
	{
		long long p=lower_bound(a1+1,a1+m+1,b1[i])-a1;//找到与估分最接近的分数线的数组下标
		sum=sum+min(abs(a1[p]-b1[i]),abs(b1[i]-a1[p-1]));//比较两个,得出最小值
	}
	printf("%lld",sum);
	return 0;
}
2020/7/13 12:12
加载中...