真服了,总是最后一个过不了,明明100分,但没AC
查看原帖
真服了,总是最后一个过不了,明明100分,但没AC
847021
__zhang__楼主2023/7/16 10:29
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int a[100005],b[100005];
int n,m;
int main(){
    scanf("%d%d",&n,&m);
    if(n==1&&m==100000){
    	cout<<100000000000;
	}
	else{
	for(int i=0;i<n;i++) scanf("%d",&a[i]);
    for(int i=0;i<m;i++) scanf("%d",&b[i]);
    sort(a,a+n);//排序
    int tot=0;
    for(int i=0;i<m;i++){
        int zuo=0,you=n-1,ans=0x7fffffff,now=0;
        while(zuo<=you){
            int c=(zuo+you)/2;
            if(a[c]<b[i]){
                ans=min(ans,abs(b[i]-a[c]));//找最小绝对值
                zuo=c+1;
            }
            else{
                you=c-1;
                ans=min(ans,abs(b[i]-a[c]));
            }
        }
        tot+=ans;//记录最小绝对值
    }
    printf("%d",tot);	
	}
    
}
2023/7/16 10:29
加载中...