fork download
  1. #include <bits/stdc++.h>
  2. #define el '\n'
  3. #define ll long long
  4. #define sandra ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  5. #include <iostream>
  6. const double PI = acos(-1);
  7. long long gcd(long long a, long long b) { return (!a) ? b : gcd(b % a, a); }
  8. //complexity o(log a*b)
  9. long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
  10. using namespace std;
  11. void solve() {
  12. int n; cin>>n;
  13. vector<int>v(n);
  14. for (int i=0;i<n;i++) {
  15. cin>>v[i];
  16. }
  17. unordered_map<ll,ll>vo;
  18. unordered_map<ll,ll>steps;
  19. for (int i=0;i<n;i++) {
  20. ll start=0;
  21. vo[v[i]]++;
  22. steps[v[i]]+=0;
  23. ll temp=v[i];
  24. if (v[i]==1) {
  25. steps[2]++;
  26. vo[v[i]+1]++;
  27. continue;
  28. }
  29. while (temp!=1 ) {
  30. if (temp%2==0) {
  31. //even
  32. temp/=2;
  33. }
  34. else {
  35. temp++;
  36. }
  37. start++;
  38. steps[temp]+=start;
  39. vo[temp]++;
  40. }
  41. }
  42. ll mini_steps=1e9;
  43. for (auto stepss:vo) {
  44. if (stepss.second==n) {
  45. mini_steps=min(steps[stepss.first],mini_steps);
  46. }
  47. }
  48. cout<<mini_steps<<el;
  49. }
  50. signed main() {
  51. sandra
  52. int t = 1;
  53. cin>>t;
  54. while (t--) {
  55. solve();
  56. }
  57. return 0;
  58. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
1000000000