P2308 添加括号

题目背景

给定一个正整数序列 $a_1,a_2,\cdots,a_n$。 不改变序列中每个元素在序列中的位置,把它们相加,并用括号记每次加法所得的和,称为中间和。 例如: 给出序列是 $4,1,2,3$。 第一种添括号方法: $$ ((4+1)+(2+3))=((5)+(5))=(10) $$ 有三个中间和是 $5,5,10$ 它们之和为: $5+5+10=20$ 第二种添括号方法 $$ (4+((1+2)+3))=(4+((3)+3))=(4+(6))=(10) $$ 中间和是 $3,6,10$,它们之和为 $19$。

题目描述

现在要添上 $n-1$ 对括号,加法运算依括号顺序进行,得到 $n-1$ 个中间和,求出使中间和之和最小的添括号方法。

输入格式

共两行。 第一行,为整数 $n$ 。 第二行,为 $a_1,a_2,\cdots,a_n$ 这 $n$ 个正整数,每个数字不超过 $100$。

输出格式

输出 3 行。 第一行,为添加括号的方法。 第二行,为最终的中间和之和。 第三行,为 $n-1$ 个中间和,按照从里到外,从左到右的顺序输出。

说明/提示

**【样例解释 $1$】** 参见题目背景。 **【数据范围】** 对于全部的数据,$1\le n\le 20$。