#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
int main()
{
ios::sync_with_stdio(0);
cout.tie(0);
cin.tie(0);
int n,k;
cin>>n>>k;
int a[n],b[n],c[n];
for(int i=0;i<n;i++)cin>>a[i];
ll ans=0,sm1=0,sm2=0;
vector<int> pos,neg;
for(int i=0;i<n;i++)cin>>b[i],c[i]=a[i]-b[i],ans+=abs(c[i]);
for(int i=0;i<n;i++)
{
if(c[i]<0)
{
neg.push_back(c[i]);
}
else
{
pos.push_back(c[i]);
}
}
sort(c,c+n);
sort(begin(pos),end(pos));
sort(begin(neg),end(neg));
vector<int> tr;
int sz=pos.size();
if(sz)
tr.push_back(-pos[sz/2]);
tr.push_back(-c[n/2]);
sz=neg.size();
if(sz)
tr.push_back(-neg[sz/2]);
for(auto x:tr)
{
for(int i=0;i<n;i++)
{
c[i]=abs((a[i]+x)-b[i]);
}
sort(c,c+n);
ll cur=0;
for(int i=0;i<n-k;i++)
{
cur+=c[i];
}
ans=min(ans,cur);
}
cout<<ans<<endl;
}
| # | 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... |