70分求助
查看原帖
70分求助
816365
liukuns6楼主2024/4/8 20:47
#include<iostream>
#include<cstring>
#include<algorithm>
#include<math.h>
using namespace std;
const int & N = 1e5+10;
typedef long long ll;
ll arr[N];
ll res , n , m;

int main(){
    cin>>n>>m;
    for(int i =0 ;i<n;i++) cin>>arr[i];
    sort(arr,arr+n);
    while(m--){
        ll x;
        cin>>x;
        ll left = -1 , right = n;
        while(left+1!=right){
            int mid = left+(right-left)/2;
            if(arr[mid] < x) left= mid;
            else right = mid;
        }
        cout<<min(fabs(x-arr[left]) , fabs(x-arr[right]))<<endl;
        res += min(fabs(x-arr[left]) , fabs(x-arr[right]));
    }
    cout<<res<<endl;
    return 0;
}
2024/4/8 20:47
加载中...