救命!最后一个点开longlong也过不去!
查看原帖
救命!最后一个点开longlong也过不去!
566190
我是歌者楼主2024/8/11 14:31
#include<bits/stdc++.h>
using namespace std;
long long int n,m,sc[1000000],st[1000000],ans;
int main(){
	cin>>m>>n;
	for(int i=1;i<=m;i++){
		cin>>sc[i];
	}
	for(int i=1;i<=n;i++){
		cin>>st[i];
	}
	sort(sc+1,sc+m+1);
	for(int i=1;i<=n;i++){
		int l=1,r=m+1;
		int mid=0;
		while(r-l>1){
			mid=(l+r)/2;
			if(sc[mid]==st[i]){
				break;
			}
			if(sc[mid]>st[i]){
				r=mid;
			}
			if(sc[mid]<st[i]){
				l=mid;
			}
		}
		ans+=min(min(abs(sc[l]-st[i]),abs(sc[r]-st[i])),abs(sc[mid]-st[i]));
	}
	cout<<ans;
}
2024/8/11 14:31
加载中...