过样例,结果全WA,有没有大佬救命
查看原帖
过样例,结果全WA,有没有大佬救命
1053171
Wuzihao23楼主2023/8/5 15:09
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
#include<stack>
#include<queue>
using namespace std;
long long nsj[200000]={0},msj[200000]={0};
int main(){	
	int n,m;
	long long ans=0;
	cin>>m>>n;
	for(int i=1;i<=m;i++)
		cin>>msj[i];
	for(int i=1;i<=n;i++)
		cin>>nsj[i];
	sort(msj,msj+m);
	for(int i=1;i<=n;i++){
		int l=1,r=m,o;
		if(nsj[i]<=msj[1]){
			ans+=msj[1]-nsj[i];
			continue;
		}
		while(l<=r){
			o=(r+l)/2;
			if(msj[o]>nsj[i])
				r=o-1;
			else if(msj[o]<nsj[i])
				l=o+1;
			else
				break;
		}
		long long a=abs(msj[o]-nsj[i]);
		if(o>1)a=min(a,abs(msj[o-1]-nsj[i]));
		if(o<=m)a=min(a,abs(msj[o+1]-nsj[i]));
		ans+=a;
	}
	cout<<ans;
	return 0;
} 
2023/8/5 15:09
加载中...