Ми визначаємо бінарний масив як масив, що задовольняє наступним властивостям:
- це не порожньо
- перше значення - a
1
- останнє значення - a
1
- всі інші значення є
0
або1
Наприклад, масив [ 1, 1, 0, 1 ]
є допустимим бінарним набором .
Завдання
Враховуючи не порожній масив A невід’ємних цілих чисел і додатне ціле число N , ваше завдання - знайти бінарний масив B довжиною N, який дозволяє генерувати А шляхом підсумовування необмеженої кількості копій B , зміщених на необмежену кількість позиції.
Приклад
A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
N = 4
Для цього вводу бінарний масив B = [ 1, 1, 0, 1 ]
буде коректною відповіддю, оскільки ми можемо зробити:
[ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
-----------------------------------------------
= [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
Правила
- Введення даних може бути здійснено у будь-якому розумному форматі.
- Вихідним може бути власний масив (наприклад
[1, 1, 0, 1]
) або двійковий рядок з роздільником або без нього (наприклад,"1,1,0,1"
або"1101"
) - Вам потрібно роздрукувати або повернути один дійсний бінарний набір . Крім того, ви можете вибрати, щоб надрукувати або повернути їх усі, коли існує декілька рішень.
- Вам не потрібно підтримувати входи, які не призводять до жодного рішення.
- Сума може включати в себе неявні нулі , які не перетинаються з будь-копією B . Другий нуль у наведеній вище сумі - це такий неявний нуль.
- Можна припустити, що максимальний розмір A становить 100, а максимальний розмір B - 30.
- Це код-гольф, тому найкоротша відповідь у байтах виграє. Стандартні лазівки заборонені.
Тестові справи
Input : N = 1 / A = [ 1, 2, 3, 4, 5 ]
Output: [ 1 ]
Input : N = 2 / A = [ 1, 2, 100, 99 ]
Output: [ 1, 1 ]
Input : N = 3 / A = [ 1, 1, 1 ]
Output: [ 1, 1, 1 ]
Input : N = 3 / A = [ 1, 1, 3, 2, 2 ]
Output: [ 1, 1, 1 ]
Input : N = 3 / A = [ 1, 0, 2, 1, 1, 1, 0, 0, 1, 0, 1 ]
Output: [ 1, 0, 1 ]
Input : N = 4 / A = [ 1, 2, 2, 2, 1 ]
Output: [ 1, 1, 1, 1 ]
Input : N = 4 / A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
Output: [ 1, 1, 0, 1 ]
Input : N = 4 / A = [ 1, 1, 0, 2, 1, 0, 1 ]
Output: [ 1, 0, 0, 1 ] or [ 1, 1, 0, 1 ]
Input : N = 5 / A = [ 1, 3, 6, 9, 8, 6, 3, 4 ]
Output: [ 1, 1, 1, 0, 1 ]
Input : N = 8 / A = [ 2, 1, 0, 2, 3, 3, 1, 2, 1 ]
Output: [ 1, 0, 0, 1, 1, 1, 0, 1 ]
Input : N = 10 / A = [ 1, 2, 1, 2, 2, 1, 3, 3, 3, 2, 3, 0, 2, 1, 1, 0, 1 ]
Output: [ 1, 1, 0, 1, 0, 1, 1, 1, 0, 1 ]
Input : N = 13 / A = [ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 ]
Output: [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ]
Input : N = 5 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 1, 1, 1, 1 ]
Input : N = 6 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 0, 0, 0, 0, 1 ]
Input : N = 7 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 1, 0, 0, 0, 1, 1 ]
Input : N = 9 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 0, 1, 0, 1, 0, 1, 0, 1 ]
N=4, A = [ 1, 1, 2, 4, 1, 2, 2, 2, 1, 2, 2, 1, 2, 0, 1 ]
ви отримаєте 30459, що ділиться як на 11, так і на 13, але лише один із них [ 1, 1, 0, 1 ]
і [ 1, 0, 1, 1 ]
є правильною відповіддю.
N
має розумно підтримувати?