#P2086. Land Division Tax

Land Division Tax

题目翻译

国际混凝土项目公司(ICPC) 是一家专注于高端市场的住宅建筑公司。ICPC计划围绕一个湖泊开发一片住宅区。这些住宅将建在不同大小的地块上,所有地块都位于湖岸。每个地块在住宅区中都有两个邻居:一个在左边,一个在右边。 ICPC拥有湖泊周围的土地,需要根据规划将其划分为多个地块。然而,县议会有一项关于土地税的规定,旨在阻止创建小地块:

土地只能通过一系列的土地分割操作来划分;

每次土地分割操作将一块土地分成两块土地;

每次土地分割必须支付土地分割税。

设分割后最大地块的面积为AA,则土地分割税的值为A×FA×F,其中FF是县议会每年设定的分割税系数。需要注意的是,要将一块土地划分为NN个地块,必须进行N1N-1次土地分割,因此必须支付N1N-1次税费。

例如,如果分割税系数为2.52.5,第一次土地分割将面积为500500的地块与其他地块分开,则第一次分割的税费为2.5×(300+200+100+100+100)2.5×(300+200+100+100+100)。如果下一次土地分割将面积为300的地块及其相邻的100100地块从剩余地块中分离出来,则需要额外支付2.5×(300+100)2.5×(300+100)的税费。需要注意的是,某些土地分割是不可能的,因为这样会导致分割后的部分超过两块。

给定湖泊周围所有地块的面积以及当前的分割税系数,你需要编写一个程序,确定按照住宅区规划划分土地时应支付的最小总土地分割税。

输入格式

输入包含多个测试用例。每个测试用例的第一行包含一个整数NN和一个实数FF,分别表示地块的数量1N200(1≤N≤200)和土地分割税系数(精确到两位小数,0<F5.000<F≤5.00)。第二行包含NN个整数XiXi,表示规划中连续地块的面积(0<Xi5000<Xi≤500);此外,XXk_kXXk+_k+1_1相邻(1kN11≤k≤N-1),且XXN_NXX1_1相邻。输入的结束由N=0N=0F=0F=0表示。

输出格式

对于每个测试用例,输出一行,包含最小总土地分割税,结果保留两位小数。

输入数据 1

4 1.50
2 1 4 1
6 2.50
300 100 500 100 100 200
0 0

输出数据 1

13.50
4500.00