제출 #1326912

#제출 시각아이디문제언어결과실행 시간메모리
1326912Faisal_SaqibSimfonija (COCI19_simfonija)C++20
55 / 110
68 ms2752 KiB
#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],d[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],d[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(d,d+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(-pos[min(n-k,sz)/2]); } sz=neg.size(); if(sz) { tr.push_back(-neg[sz/2]); tr.push_back(-neg[min(n-k,sz)/2]); } tr.push_back(-d[n/2]); tr.push_back(-d[(n-k)/2]); reverse(d,d+n); tr.push_back(-d[(n-k)/2]); tr.push_back(-d[n/2]); for(auto x:tr) { for(int i=0;i<n;i++) { c[i]=abs(d[i]+x); } sort(c,c+n-k); ll cur=0; for(int i=0;i<n-k;i++) { cur+=c[i]; } ans=min(ans,cur); } reverse(d,d+n); for(auto x:tr) { for(int i=0;i<n;i++) { c[i]=abs(d[i]+x); } sort(c,c+n-k); ll cur=0; for(int i=0;i<n-k;i++) { cur+=c[i]; } ans=min(ans,cur); } cout<<ans<<endl; }
#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...