0 tle 求助
查看原帖
0 tle 求助
1055174
fire_ak_ioi楼主2024/1/24 22:04
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define il inline
int read()
{
    long long xr=0,F=1; char cr;
    while(cr=getchar(),cr<'0'||cr>'9') if(cr=='-') F=-1;
    while(cr>='0'&&cr<='9')
        xr=(xr<<3)+(xr<<1)+(cr^48),cr=getchar();
    return xr*F;
}
const int N=1e5+5;
int a[N],b[N];
signed main(){
	int n,m;
	n=read(),m=read();
	for(int i=1;i<=n;i++){
		a[i]=read();
	}
	for(int i=1;i<=m;i++){
		b[i]=read();
	}
	sort(a+1,a+n+1);
	int mid,l,r,sum,ans=0;
	for(int i=1;i<=m;i++){
		l=1,r=n;
		while(l<r-1){
            mid=(l+r)>>2;
            if(b[i]>=a[mid]) l=mid;
            else r=mid;
        }
        if((b[i]-a[l])<abs(a[r]-b[i])){
        	sum=abs(b[i]-a[l]);
        }else{
        	sum=abs(a[r]-b[i]);
		}	
		ans+=sum;
	}
	cout<<ans;
	return 0;
}
2024/1/24 22:04
加载中...