100分WA?
查看原帖
100分WA?
1210473
ytezwsw_xjy楼主2025/6/19 13:10
#include<bits/stdc++.h>
using namespace std;
const int xx=1e6+6;
inline int read()
{
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9') {
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*f;
}
int n,m;
vector<int> a;
vector<int> b;
int ans=0;
int jdz(int a,int b)
{
	if((a-b)<0) {
		return (a-b)*(-1);
	} else {
		return a-b;
	}
}
int ef(int left,int right,int n)
{
	int minn=xx;
	while(left<=right) {
		int mid=left+(right-left)/2;
		if(a[mid]<n) {
			left = mid + 1;
			minn=min(minn,jdz(n,a[mid]));
		} else if(a[mid]>n) {
			right = mid - 1;
			minn=min(minn,jdz(n,a[mid]));
		} else {
			return 0;
		}
	}
	return minn;
}
int main()
{
	m=read(),n=read();
	for(int i=1; i<=m; i++) {
		int num;
		cin>>num;
		a.push_back(num);
	}
	for(int i=1; i<=n; i++) {
		int num;
		cin>>num;
		b.push_back(num);
	}
	sort(a.begin(),a.end());
	sort(b.begin(),b.end());
	for(int i=0; i<b.size(); i++) {
		ans+=ef(0,m-1,b[i]);
	}
	cout<<ans<<"\n";
	return 0;
}

2025/6/19 13:10
加载中...