Submission #101742

#TimeUsernameProblemLanguageResultExecution timeMemory
101742mayhoubsalehSimfonija (COCI19_simfonija)C++14
110 / 110
126 ms4264 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back using namespace std; ll n,k; ll dif[100005]; ll suf[100005],pre[100005]; ll x; bool com(ll a,ll b){ return abs(a-x)>abs(b-x); } ll presum(ll l,ll r){ return pre[r]-pre[l-1]; } ll sufsum(ll l,ll r){ return suf[l]-suf[r+1]; } int main(){ cin>>n>>k; for(ll i=1;i<=n;i++){ cin>>dif[i]; } for(ll i=1;i<=n;i++){ ll x; cin>>x; dif[i]=x-dif[i]; } sort(dif+1,dif+n+1); for(ll i=1;i<=n;i++){ pre[i]=pre[i-1]+dif[i]; } for(ll i=n;i>=1;i--){ suf[i]=suf[i+1]+dif[i]; } ll ans=1e18; ll l=0,r=n-k+1; //for(ll i=1;i<=n;i++)cout<<dif[i]<<' ';cout<<endl; for(ll i=1;i<=n;i++){ //cout<<dif[i]*(i-1)-pre[i-1]+suf[i+1]-dif[i]*(n-i)<<endl; while(abs(dif[l+1]-dif[i])>abs(dif[r]-dif[i])&&r<=n&&l+1<=n){ l++; r++; } //cout<<l<<' '<<r<<endl; ans=min(ans,dif[i]*(i-1-l)-presum(l+1,i-1)+sufsum(i+1,r-1)-dif[i]*(r-1-i)); /*if(ans>dif[i]*(i-1)-pre[i-1]+suf[i+1]-dif[i]*(n-i)){ ans=dif[i]*(i-1)-pre[i-1]+suf[i+1]-dif[i]*(n-i); x=dif[i]; }*/ } 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...