帮忙
  • 板块学术版
  • 楼主Gao_l
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/8/19 21:47
  • 上次更新2023/10/27 14:31:49
查看原帖
帮忙
750728
Gao_l楼主2022/8/19 21:47
#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000005]={0},sum=0;
void er(int x){
    int lt=0,rt=m+1;
    while(lt+1<rt){
        int mid=(rt+lt)/2;
        if(a[mid]>x){
            rt=mid;
        }else{
            lt=mid;
        }
    }
    sum+=min(abs(a[lt]-x),abs(a[rt]-x));
    return ;
}
int main(){
    cin >> m >> n;
    for(int i=1;i<=m;i++){
        cin >> a[i];
    }
    a[0]=-1000000000;
    sort(a,a+1+n);
    
    for(int i=1;i<=n;i++){
        int x;
        cin >> x;
        er(x);
    }
    cout << sum;
    return 0;
}

脑子都耗费了 不知怎么才好 不知那错了?? 求大佬指点

题目在这里

2022/8/19 21:47
加载中...