Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <set>
  3. #include <algorithm>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. int n, a[200000 + 14], k, ans;
  9. vector<int> s[200000 + 14];
  10.  
  11. int main() {
  12. cin >> n >> k;
  13. for(int i = 0; i < n; i++) {
  14. scanf("%d", &a[i]);
  15. }
  16. for(int i = 0; i < n; i++) {
  17. int cur = 0;
  18. while(a[i] > 0) {
  19. s[a[i]].push_back(cur);
  20. a[i] /= 2;
  21. cur++;
  22. }
  23. s[0].push_back(cur);
  24. }
  25. ans = 1e9;
  26. for(int i = 0; i <= 200000; i++) {
  27. if(s[i].size() < k) {
  28. continue;
  29. }
  30. sort(s[i].begin(), s[i].end());
  31. int cnt = 0, sum = 0;
  32. bool fl = false;
  33. for (auto it : s[i]) {
  34. sum += it;
  35. cnt++;
  36. if(cnt == k) {
  37. fl = true;
  38. break;
  39. }
  40. }
  41. if(fl) {
  42. ans = min(ans, sum);
  43. }
  44. }
  45. cout << ans << '\n';
  46. return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement