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>
#define sz(c) int(c.size())
#define rep(i,a,b) for (int i=a; i<(b); ++i)
#define per(i,a,b) for (int i=(b)-1; i>=(a); --i)
using namespace std;
using ll = long long;
ll const INF=1e18;
int const MAXN=110000;
int N,K;
int A[MAXN];
int B[MAXN];
ll d[MAXN];
ll prSum[MAXN];
ll sum(int l,int r) {
return prSum[r]-prSum[l];
}
int main() {
cin.tie(0);
ios_base::sync_with_stdio(0);
cout<<fixed<<setprecision(10);
cin>>N>>K;
rep(i,0,N) cin>>A[i];
rep(i,0,N) cin>>B[i];
rep(i,0,N) d[i]=A[i]-B[i];
sort(d,d+N);
prSum[0]=0;
rep(i,0,N) prSum[i+1]=prSum[i]+d[i];
int n=N-K;
ll res=INF;
rep(i,n/2,N-(n-1)/2) {
ll leftSum=d[i]*(n/2) - sum(i-n/2,i);
ll rightSum=sum(i+1,(i+1)+(n-1)/2) - d[i]*((n-1)/2);
res=min(res,leftSum+rightSum);
}
cout<<res<<"\n";
}
# | 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... |