Submission #100258

#TimeUsernameProblemLanguageResultExecution timeMemory
100258pzdbaSimfonija (COCI19_simfonija)C++14
77 / 110
213 ms2040 KiB
#include <bits/stdc++.h> using namespace std; long long oo = 1e18; int n, k; int a[100001], b[100001], c[100001], d[100001]; long long solve(int x){ for(int i=1;i<=n;i++) d[i] = c[i]+x; int l = 1, r = n, cnt = 0; while(cnt < k){ cnt++; if(abs(d[l]) > abs(d[r])) d[l] = 0, l++; else d[r] = 0, r--; } long long ans = 0; for(int i=1;i<=n;i++) ans += abs(d[i]); return ans; } int main(){ scanf("%d%d", &n, &k); for(int i=1;i<=n;i++) scanf("%d", &a[i]); for(int i=1;i<=n;i++) scanf("%d", &b[i]); for(int i=1;i<=n;i++) c[i] = a[i]-b[i]; sort(c+1, c+1+n); int lo = 0, hi = 1000000; long long ans = oo; for(int i=0;i<100;i++){ int mid1 = lo + (hi-lo)/3; int mid2 = hi - (hi-lo)/3; long long result1 = solve(mid1); long long result2 = solve(mid2); if(result1 < result2){ ans = min(ans, result1); hi = mid2; } else{ ans = min(ans, result2); lo = mid1; } } lo = 0, hi = 1000000; for(int i=0;i<100;i++){ int mid1 = lo + (hi-lo)/3; int mid2 = hi - (hi-lo)/3; long long result1 = solve(-mid1); long long result2 = solve(-mid2); if(result1 < result2){ ans = min(ans, result1); hi = mid2; } else{ ans = min(ans, result2); lo = mid1; } } printf("%lld\n", ans); }

Compilation message (stderr)

simfonija.cpp: In function 'int main()':
simfonija.cpp:19:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &k);
     ~~~~~^~~~~~~~~~~~~~~~
simfonija.cpp:20:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++) scanf("%d", &a[i]);
                           ~~~~~^~~~~~~~~~~~~
simfonija.cpp:21:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++) scanf("%d", &b[i]);
                           ~~~~~^~~~~~~~~~~~~
#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...