Стек шаров
Телеканал XYZ разрабатывает новое игровое шоу, в котором участники должны сделать некоторый выбор чтобы получить приз. Игра состоит из треугольного стека шаров, на каждом из которых записано целочисленное значение, как показано ниже на примере.
Участник должен выбрать набор шаров, и его призом будет сумма чисел на них. Участник может взять шар, только если он берет все шары, находящиеся непосредственно над ним. Это может потребовать снятия дополнительных шаров по описанному правилу. Участник может не взять ни одного шара, в таком случае его приз будет равным нулю.
Директор телешоу заинтересован в том, чтобы участник получил максимальный приз для заданного стека. Так как он является Вашим босом, то попросил Вас решить эту задачу.
Входные данные
Каждый тест задается в нескольких строках. Первая строка содержит количество рядов N (1 ≤ N ≤ 1000) в стеке. i-ая из следующих N строк содержит i целых чисел B_ij (-10^5 ≤ B_ij ≤ 10^5 для 1 ≤ j ≤ i ≤ N); значение B_ij равно числу, записанному на j-ом шаре в i-ом ряду стека (первый ряд - самый верхний, в каждом ряду первым шаром является самый левый).
За последним тестом следует строка, содержащая один ноль.
Выходные данные
Для каждого теста вывести в отдельной строке целое число - максимальный приз, который может получить участник игры для заданного стека шаров.