Submission #100336

#TimeUsernameProblemLanguageResultExecution timeMemory
100336tpoppoSimfonija (COCI19_simfonija)C++14
55 / 110
81 ms5048 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int MAXN = 1e5 + 10; int n, k; int a[MAXN]; int b[MAXN]; int sim(int x){ vector<int> v; v.reserve(n); for(int i=0;i<n;i++) v.push_back( abs(a[i]-b[i] + x)); nth_element(v.begin(),v.begin() + n - k,v.end()); int sm = 0; for(int i=0;i<n-k;i++) sm += v[i]; return sm; } signed main() { cin.tie(0); 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]; vector<int> dx; for(int i=0;i<n;i++) dx.push_back(b[i] - a[i]); sort(dx.begin(),dx.end()); dx.erase(unique(dx.begin(),dx.end()),dx.end()); int l = 0; int r = dx.size()+1; while(l<r){ //cout<<l<<" "<<r<<endl; int m1 = l + (r-l)/2; if(sim(dx[m1]) < sim(dx[m1 + 1])){ r = m1; }else{ l = m1 + 1; } } cout<<sim(dx[l])<<'\n'; 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...