Home => ProblemSet => 2.12-02:开宝箱
Problem1292--2.12-02:开宝箱

1292: 2.12-02:开宝箱

Time Limit: 1 Sec  Memory Limit: 128 MB  Submit: 0  Solved: 0
[ Submit ] [ Status ] [ Creator: ][ 参考程序 ]

Description

FFF去手游氪金,游戏里有 N 个宝箱,有的装满了珠宝,有的装着废品。
FFF手上有数据库,所以他知道每一个宝箱的价值,但是他不喜欢作弊,所以要按顺序开这 N 个宝箱中的若干个。
但是开宝箱很累的。一开始FFF的金币是 1,每得到一个宝箱之后,FFF得到的价值是 金币×宝箱的价值,之后他的金币就会变为原来的 k 倍 (0<k<1)
FFF不喜欢连续不开很多宝箱,所以任意一段长度为 M 的序列中,FFF一定要开其中的一个宝箱。
现在FFF想知道他能得到的最大价值和。

Input

第一行,两个整数 N,M,表示的含义如题目中所述;
第二行,一个小数 k,表示的含义如题目中所述,最多4位小数;
第三行,N 个整数,第 i 个整数表示第 i 个宝箱的价值。

Output

输出一行,一个实数,表示方方方能得到的最大价值和,保留两位小数。

Sample Input Copy

3 2
0.1
1 2 3

Sample Output Copy

2.30

HINT

对于 30% 的数据,1≤N≤10。
对于 60% 的数据,1≤N≤1000。
对于 100% 的数据,1≤N≤100000,1≤M≤N,0<k<1,10−9≤宝箱的价值≤109。

Source/Category