Ми збираємося скласти список цілих чисел. Процедура для цього полягає в наступному: Якщо список має рівну довжину, складіть список половини його довжини, де n-й елемент нового списку є сумою n-го пункту старого списку і n-го-до- останній пункт старого списку. Наприклад, якби у нас був список
[1 2 3 4 5 6 7 8]
Ми б склали це так
[8 7 6 5]
+[1 2 3 4]
__________
[9 9 9 9]
Якщо список має непарну довжину, для його складання спочатку видаляємо середній елемент, складаємо його як би парним і додаємо середній елемент до результату.
Наприклад, якби у нас був список
[1 2 3 4 5 6 7]
Ми б склали це так
[7 6 5]
+[1 2 3]
__________
[8 8 8]
++ [4]
__________
[8 8 8 4]
Завдання
Напишіть програму або функцію, яка приймає список цілих чисел як вхідні та вихідні дані зі складеним списком.
Це питання з кодовим гольфом, тому відповіді будуть набрані в байтах, менша кількість байтів буде кращою.
Зразок реалізації
Ось реалізація в Haskell, яка визначає функцію, fяка виконує складку.
f(a:b@(_:_))=a+last b:f(init b)
f x=x