最后一个测试样例过不了,求助!!!
查看原帖
最后一个测试样例过不了,求助!!!
1282782
Christian_楼主2024/4/7 13:04
#include <bits/stdc++.h>
using namespace std;

const int N=1e5+10;
int c[N];
int n,m,s,d,res=0;

void judge(int x){
    int l=0,r=m+1;
    if(c[l+1]>=s){
        d=c[l+1]-s;
        return;
    }
    if(c[r-1]<=s){
        d=s-c[r-1];
        return;
    }
    while(l+1<r){
        int mid=(l+r)>>1;
        if(c[mid]>=s) r=mid;
        else l=mid;
    }
    d=min(s-c[r-1],c[r]-s);
    return;
}

int main(){
    scanf("%d%d",&m,&n);
    for(int i=1;i<=m;i++) scanf("%d",&c[i]);
    sort(c+1,c+m+1);
    for(int i=1;i<=n;i++){
        scanf("%d",&s);
        judge(s);
        res+=d;
    }
    printf("%d",res);
    return 0;
}
2024/4/7 13:04
加载中...