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
输出一行,一个实数,表示方方方能得到的最大价值和,保留两位小数。
HINT
对于 30% 的数据,1≤N≤10。
对于 60% 的数据,1≤N≤1000。
对于 100% 的数据,1≤N≤100000,1≤M≤N,0<k<1,10−9≤宝箱的价值≤109。