20分求助
查看原帖
20分求助
307483
苏黎世楼主2020/9/29 19:23
#include<iostream>
#include<algorithm>
using namespace std;
#define f(X,Y) for(int i = X;i <=Y;++i)
const int maxn = 100005;
int n,m,b,a[maxn],l,r,mid;
long long sum;
void doi(int x)
{
	l = 1; r = m;
	while(l < r){ 
		mid = (l + r) >> 1;
		if( a[mid] <= x) l = mid + 1;
		else r = mid;
	}
	if( b <= a[1] ) sum += (a[1] - b);
	else if(b >= a[m] ) sum += (b - a[m]);
	else sum = sum + min(abs( a[l] - b ),abs(  a[l-1] - b ));
}

void cini()
{
	cin >> m >> n;
	f(1,m) cin >> a[i];
	sort(a + 1,a + n + 1);
	f(1,n) {
		cin >> b;
		doi(b);
	}
	cout << sum;
}

int main()
{
	cini();
	return 0;
}

只A了一个点 wtf?

2020/9/29 19:23
加载中...