//活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include <stdio.h>
#include <stdlib.h>
int cmp(int i, int min, int num, int *count_p)
{
while (min!=num) {
if (num > min)
{
num /= 2;
(*count_p)++;
}
else
{
min /= 2;
(*count_p) += i;
}
}
return min;
}
int main() {
int n = 0;
// 这题难就难在 因为可能会出现最小数是 负数 所以得用 无符号整数
unsigned int min = 0;
unsigned int num = 0;
int count = 0;
// 输入
scanf("%d", &n);
scanf("%d", &min);
for (int i=1; i<n; i++) {
scanf("%d", &num);
min = cmp(i, min, num, &count);
}
printf("%d", count);
}
//活动地址: 牛客春招刷题训练营 - 编程打卡活动