Submission #410881

#TimeUsernameProblemLanguageResultExecution timeMemory
410881NamnamseoSimfonija (COCI19_simfonija)C++17
55 / 110
34 ms3140 KiB
#include <iostream> #include <vector> #include <algorithm> #include <set> using namespace std; using ll = long long; const int maxn = int(1e5) + 10; const int inf = int(1e8); const ll linf = 1ll<<60; int n, k; int a[maxn], b[maxn]; int d[maxn]; int kd[maxn]; int main() { cin.tie(0)->sync_with_stdio(0); cin >> n >> k; if (k == n) { cout << "0\n"; return 0; } for (int i=1; i<=n; ++i) cin >> a[i]; for (int i=1; i<=n; ++i) cin >> b[i]; for (int i=1; i<=n; ++i) d[i] = b[i]-a[i]; sort(d+1, d+n+1); for (int i=0; i<=k; ++i) { if (i+1 <= n) kd[i] += d[1+i]-d[1]; if (n-(k-i) >= 1) kd[i] += d[n]-d[n-(k-i)]; } int km = max_element(kd, kd+k+1)-kd; rotate(d+1, d+1+km, d+n+1); int v = d[1+(n-k)/2]; ll ans = 0; for (int i=1; i<1+(n-k); ++i) { ans += abs(v-d[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...