UVA1107 Magic Sticks
题目描述
魔法被所有古代民族接受为一种迫使神圣力量帮助的技术。在一个著名的故事中,一群巫师把他们的手杖扔到地上,它们神奇地变成了活蛇。作为对抗,另一个人把手杖扔到地上,它变成了一条蛇,然后吃掉了巫师们的蛇!
这个问题的魔法要求就是它的解决方案。给定一个魔杖,它由多个直线段组成,并且这些段之间有接头,可以折叠成多边形。根据段的长度以及它们的折叠方式,魔杖可以形成一个或多个多边形。你的任务是,确定通过折叠魔杖所能形成的多边形的最大封闭面积,且每个段最多只使用一次。段只能在端点处接触。
输入格式
输入包含多个测试用例。每个测试用例描述了一根魔杖。每个测试用例的第一行包含一个整数 $n(1\le n \le 500)$,表示魔杖中的段数。下一行包含 $n$ 个整数 $S_1,S_2,...S_n(1\le S_i\le 1000)$,表示手杖中段的长度,按照它们在手杖中出现的顺序。
最后一个测试用例后面是一行包含单个零的行。
输出格式
对于每个测试用例,输出它的编号以及通过折叠魔杖形成的多边形能够达到的最大封闭面积,保留到小数点后六位。答案在绝对或相对误差 $10^{-4}$ 以内将被接受。