枚举每个可能的数作为结果即可。

#include<bits/stdc++.h>
#define int long long
#define double long double
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef long long ll;
typedef pair<int,int> PII;
const int N=3e5+10;
const int M=1e3+10;
int mod=1e9+7;
int a[N];

void solve(){
    int n;cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    int sum=a[1];
    int ans=1000000000,s1=0;
    while(sum){
        int f=0,cnt=0;
        for(int i=2;i<=n;i++){
            if(a[i]<sum){
                f++;
                break;
            } else {
                int ss=a[i];
                while(ss>sum){
                    ss/=2;
                    cnt++;
                }
                if(ss!=sum){
                    f++;
                    break; 
                }
            }
        }
        sum/=2;
        if(!f) ans=min(ans,cnt+s1);
        s1++;
    }
    cout<<ans<<endl;
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int _;
    _=1;
    //cin>>_;
    while(_--){
        solve();
    }
}