This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |