Top.Mail.Ru
Ответы

Решите пожалуйста задачу на python 3

Летом гимназистка Вера планирует посетить достопримечательности Тридевятого царства на автомобиле в стиле дизельпанк. Самое сложное в дизельпанке – это пуск двигателя машины.


Дизельный двигатель имеет N цилиндров. В начальный момент времени все поршни в цилиндрах двигателя находятся на нулевой отметке h0 = 0. Из уроков информатики в гимназии Вера знает, чтобы осуществить пуск дизеля необходимо установить каждый поршень в цилиндре на заданную высоту hi.

Из инструкции к дизелю Вера поняла, что может использовать только две операции для установки поршней в цилиндрах на заданную пусковую высоту.


Операция инкремента – увеличивает значение высоты одного любого поршня в цилиндре на 1.
Операция двойного увеличения – удваивает значение высоты поршня в каждом из выбранных цилиндров.

Например, для второй операции можно выбрать все цилиндры, а можно взять всего один или два цилиндра дизеля для удваивания высоты поршня в них.

Помогите гимназистке запустить двигатель. Найдите минимальное количество ходов, необходимое для установки поршней в цилиндрах двигателя на рекомендуемую для пуска дизеля высоту.
Формат ввода
В первой строке N (1 ≤ N ≤ 105) – количество цилиндров дизеля.
Во второй строке hi (0 ≤ hi ≤ 109) – рекомендованное положение каждого поршня в цилиндрах для пуска дизеля.

Формат вывода
Минимальное количество ходов для пуска дизеля по инструкции.

Пример 1
Ввод
4
3 8 6 5
Вывод
10

По дате
По рейтингу
Аватар пользователя
Новичок
7мес

У меня для теста получилось

1234567
 4  1 для 1234: 1111  
5  2 для 1234: 2222  
6  2 для   24: 2424  
7  1 для    1: 3424 
8  1 для    4: 3425 
9  1 для    3: 3435 
10 2 для   23: 3865