求助大佬 这个二分有什么问题嘛
查看原帖
求助大佬 这个二分有什么问题嘛
1172582
Gent7c楼主2024/3/13 16:17
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
long long n, m;
const int N = 1e5 + 5;
int a[N];
int l, r;
int sum = 0;
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> a[i];
    sort(a + 1, a + 1 + n);
    int x;
    l = 0, r = n + 1;
    while (m--)
    {
        int x;
        cin >> x;
        while (l +1!= r)
        {
            int mid = (r + l) >> 1;
            if (a[mid] >= x) r = mid;
            else l = mid;
        }
        sum += min(abs(a[l] - x), abs(a[l + 1] - x));
    }
    cout << sum;
}

2024/3/13 16:17
加载中...