Submission #100610

#TimeUsernameProblemLanguageResultExecution timeMemory
100610dalgerokSimfonija (COCI19_simfonija)C++17
110 / 110
46 ms3732 KiB
#include<bits/stdc++.h>
using namespace std;



const int N = 1e5 + 5;




int n, k, a[N], b[N], c[N];
long long pref[N];

inline long long get(int l, int r){
    return pref[r] - pref[l - 1];
}

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin >> n >> k;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
    }
    for(int i = 1; i <= n; i++){
        cin >> b[i];
        c[i] = b[i] - a[i];
    }
    if(n == k){
        return cout << 0, 0;
    }
    sort(c + 1, c + n + 1);
    for(int i = 1; i <= n; i++){
        pref[i] = pref[i - 1] + c[i];
    }
    int m = n - k;
    long long ans = 9e18;
    for(int i = m; i <= n; i++){
        int l = i - m + 1, r = i;
        int mid = (r + l) / 2;
        ans = min(ans, (1LL * c[mid] * (mid - l + 1) - get(l, mid)) + (get(mid, r) - 1LL * c[mid] * (r - mid + 1)));
    }
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...