11969. Ділення на 2 або 3


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам дано послідовність натуральних чисел: \(A=(a_1 ​ ,a_2 ​ ,…,a_N ​ )\).

Ви можете вибрати та виконати одну з наступних операцій будь-яку кількість разів, можливо, нуль.

  • Виберіть таке ціле число \(i\), щоб \(1≤i≤N\) і \(a_i\) ​ було кратним 2, і замініть \(a_i\) ​ на \(a_i/2\) .
  • Виберіть таке ціле число \(i\), щоб \(1≤i≤N\) і \(a_i\) ​ було кратним 3, і замініть \(a_i\) ​ на \(a_i/3\).

    Ваша мета — зробити так, щоб \(A\) задовольняло \(a_1 ​ =a_2 ​ =…=a_N\).

Знайдіть мінімальну загальну кількість разів, що треба виконати описані операції для досягнення мети. Якщо неможливо досягти мети, виведіть -1.

Обмеження

  • \(2≤N≤1000\)
  • \(1≤a_i ​ ≤10^9\)
  • Усі значення у вхідних даних є цілими числами.

Формат вхідних даних

Перший рядок містить ціле число \(N\).

Наступний рядок містить цілі числа \(a_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь.

Приклад вхідних даних

3
1 4 3

Приклад вихідних даних

3

Ось спосіб досягнення мети за три операції, що є мінімально необхідним.

  • Виберіть таке ціле число i=2, щоб \(a_i\) було кратним 2, і замініть \(a_2\) на \( a_2/2\) ​. А стає (1,2,3).
  • Виберіть таке ціле число i=2, щоб \(a_i\) було кратним 2, і замініть \(a_2\) на \(a_2/2\) ​. А стає (1,1,3).
  • Виберіть таке ціле число i=3, щоб \(a_i\) було кратним 3, і замініть \(a_3\) на \(a_3/3\) ​. А стає (1,1,1).

Приклад вхідних даних

3
2 7 6

Приклад вихідних даних

-1

Приклад вхідних даних

6
1 1 1 1 1 1

Приклад вихідних даних

0

Коментарі

Ще немає коментарів.