10分二分代码求指导
查看原帖
10分二分代码求指导
1303234
hkr114514楼主2024/8/7 09:23
#include <bits/stdc++.h>
using namespace std;
int mm, nn, m[100010], n[100010],ans=0;
int main()
{
    cin >> mm >> nn;
    for (int i = 1; i <= mm; i++)
    {
        cin >> m[i];
    }
    sort(m + 1, m + mm + 1);
    for (int i = 1; i <= mm; i++)
    {
        cin >> n[i];
        int L = 1, R = mm, mid ;
        while (L < R)
        {
            mid = L + R + 1 >> 1;
            if (m[mid] <= n[i])
            {
                L = mid;
            }
            else
            {
                R = mid - 1;
            }
        }
        ans+=min(abs(n[i]-m[L]), abs(n[i]-m[L+1]));
    }
    cout << ans;
    return 0;
}
2024/8/7 09:23
加载中...