Вступ
Розглянемо два непусті цілі масиви, скажімо, A = [0 3 2 2 8 4] і B = [7 8 7 2] . Щоб виконати додавання вирівнювання на них, ми робимо наступне:
Повторіть кожен масив достатньо разів, щоб мати загальну довжину lcm (length (A), length (B)) . Тут lcm означає найменший загальний кратний.
A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][7 8 7 2][7 8 7 2]
Виконайте елементне додавання на повторних масивах та виріжте результат у кожній позиції, де є зріз у будь-якому з них.
A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][ 7 8 7 2][7 8 7 2] -> [7 11 9 4][15 12][7 5][9 10 15 6]
Цей масив масивів - ваш результат.
Завдання
Ваші входи - це два непусті масиви цілих чисел, і ваш результат повинен бути результатом додавання їх вирівнювання, як визначено вище. Введення та вихід можуть бути у будь-якому розумному форматі. Вам не доведеться турбуватися про цілісне переповнення при виконанні додавання.
Правила та оцінка
Ви можете написати повну програму або функцію. Виграє найменший байт.
Тестові справи
[1] [4] -> [[5]]
[1,2,-3,-4] [15] -> [[16],[17],[12],[11]]
[0,-4] [2,1,0,-3] -> [[2,-3],[0,-7]]
[0,3,2,2,8,4] [7,8,7,2] -> [[7,11,9,4],[15,12],[7,5],[9,10,15,6]]
[18,17,16] [-1,-2,-3,-4] -> [[17,15,13],[14],[16,14],[15,13],[15],[16,14,12]]
[18,17,16,15] [-1,-2,-3,-4] -> [[17,15,13,11]]
[1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7],[6,7,3,2],[7],[6,7,6,7,6],[7,3,2],[7,6],[7,6,7,6,7],[3,2],[7,6,7],[6,7,6,7,3],[2],[7,6,7,6],[7,6,7,3,2]]
[1,1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7,6],[7,3,2],[7,6,7],[6,7,6,7,3,2]]
[1,1,1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7,6,7],[3,2],[7,6,7,6,7],[6,7,3,2],[7,6,7],[6,7,6,7,3,2],[7],[6,7,6,7,6,7,3],[2],[7,6,7,6,7,6],[7,3,2],[7,6,7,6],[7,6,7,3,2],[7,6],[7,6,7,6,7,3,2]]