Рекурсивное дерево отрезков

Вам дан массив из n элементов. Нужно рекурсивно построить дерево отрезков (segment tree) и вычислить значение каждого узла в этом дереве. Значение каждого узла соответствует сумме подмассива, за который этот узел отвечает.

Входные данные

В первой строке содержится целое число n (1 ≤ n ≤ 100 000) — количество элементов в массиве.
Во второй строке заданы n целых чисел (), разделённые пробелами.

Выходные данные

Выведите построенное дерево отрезков, указав значение каждого узла. Каждый уровень дерева следует выводить в отдельной строке, а внутри строки значения узлов должны быть разделены пробелом.

Примеры

Входные данные
Выходные данные
4 1 2 3 4
10 3 7 1 2 3 4
8 3 7 9 6 2 1 5 4
37 25 12 10 15 3 9 3 7 9 6 2 1 5 4

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 10 MB

To check your solution you need to sign in
Sign in to continue