30pts求调!求调!
查看原帖
30pts求调!求调!
1074633
RonL楼主2024/5/30 21:42
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int m,n;
ll line[100005];
ll arr[100005];
bool check(ll x){
    ll ans = 0;
    ll minn;
    for(int i=1;i<=n;i++){
        minn = 99999999;
        for(int j=1;j<=m;j++){
            minn = min(minn,abs(line[j]-arr[i]));
        }
        ans += minn;
    }
    return ans <= x;
}
void solve(){
    cin >> m >> n;
    ll r = 0;
    for(int i=1;i<=m;i++){
        cin >> line[i];
    }
    for(int i=1;i<=n;i++){
        cin >> arr[i];
        r += arr[i];
    }
    ll l = 1;
    while(l < r){
        int mid = (l+r)/2;
        if(check(mid))r = mid;
        else l = mid+1;
    }
    cout << l;
}
int main(){
    solve();
    return 0;
}

江湖救急!!!

2024/5/30 21:42
加载中...