Submission #159672

#TimeUsernameProblemLanguageResultExecution timeMemory
159672theknife2001Simfonija (COCI19_simfonija)C++17
110 / 110
39 ms2940 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const int N=1e5+55; int a[N]; int b[N]; int x[N]; int n,k; int pre; int suf; ll cur; int j,i; void solve(int pos) { pre--; suf++; //cout<<pre<<' '<<suf<<endl; while(x[j]-x[pos]<x[pos]-x[i]&&i<pos&&j<n) { //cout<<' '<<i<<' '<<j<<endl; cur+=x[j]-x[pos-1]; pre++; suf--; cur-=x[pos-1]-x[i]; j++; i++; } //cout<<cur<<' '; ll dif=x[pos]-x[pos-1]; cur+=dif*suf-dif*(pre+1); //cout<<cur<<endl; } int main() { ios::sync_with_stdio(false); cin>>n>>k; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) cin>>b[i]; for(int i=0;i<n;i++) x[i]=a[i]-b[i]; sort(x,x+n); int temp=x[0]; for(int i=0;i<n;i++) { x[i]-=temp; //cout<<x[i]<<' '; if(i<n-k) cur+=abs(x[i]); } //cout<<endl; j=n-k; ll ans=cur; pre=n-k-1; for(int i=1;i<n;i++) { solve(i); ans=min(ans,cur); } cout<<ans<<endl; return 0; }
#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...