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
Коментарі