AtCoderプログラミング講座

题意翻译

AtCoder分发了N位优秀的比赛程序员的讲座视频。初学者的竞赛程序员Takahashi-kun正试图观看AtCoder提供的视频。 Takahashi-kun的能力由称为速率的实际值表示,速率越高,能力越高。 当Takahashi-kun的速率是C C时,如果你看速率R R的课程程序员,Takahashi-kun的速率变为(C R)/ 2(C R)/ 2。 Takahashi-kun可以按任何顺序查看总计K K的课程视频,但只能查看同一个竞赛程序员的课程视频一次 。 请编写一个程序,通过观看讲座视频,找出高桥可以达到的最高费率,给出分发讲座视频的N N人的比率。 但是,Takahashi的初始费率是0 0 ##### 输入格式: 输入由标准输入以下列形式给出: N K. R1 R2 ... RN 在第一行,用空格划分给出表示讲座视频的数量的整数N(1N N 100 100)和表示高桥可以看到的视频的数量的表示1 K K N N的整数K. 在第二行,表示提供课程视频的竞赛程序员的速率的整数Ri(1 Ri Ri)4,000)具有空格分割 ##### 输出格式: 输出高桥可以在一条线上实现的最大速率 绝对误差或相对误差为10 -6或更小是可以接受的 PS:结尾处添加换行符

题目描述

[problemUrl]: https://abc003.contest.atcoder.jp/tasks/abc003_3 AtCoder社では、優秀な競技プログラマーの講座動画を $ N $ 個配信しています。 初心者競技プログラマーの高橋くんは、AtCoder社が配信している動画を見て修練しようとしています。 高橋くんの実力はレートという実数値で表され、レートが高いほど実力が高いことを表します。 高橋くんのレートが $ C $ の時に、レート $ R $ の競技プログラマーの講座動画を見ると、高橋くんのレートは $ (C+R)/2 $ に変化します。 高橋くんは、講座動画を合計で $ K $ 個まで好きな順番で見ることができますが、同じ競技プログラマーの講座動画は一度までしか見ることができません。 講座動画を配信している $ N $ 人のレートが与えられた時、高橋くんが講座動画を見ることによって達成できるレートの最大値を求めるプログラムを書いてください。 ただし、高橋くんの初期レートは $ 0 $ です。

输入输出格式

输入格式


输出格式


高橋くんが達成できる最大レートを $ 1 $ 行で出力せよ。 絶対誤差、または、相対誤差が $ 10^{-6} $ 以下であれば許容される。 また、出力の末尾には改行を入れること。

输入输出样例

输入样例 #1

2 2
1000 1500

输出样例 #1

1000.000000

输入样例 #2

2 1
1000 1500

输出样例 #2

750

输入样例 #3

10 5
2604 2281 3204 2264 2200 2650 2229 2461 2439 2211

输出样例 #3

2820.031250000

说明

### Sample Explanation 1 \- 以下の方法が最適です。 - まず、レート $ 1000 $ の競技プログラマーの講座動画を見ます。これにより、高橋くんはレート $ 0 $ から $ (0+1000)/2\ =\ 500 $ になります。 - 次に、レート $ 1500 $ の競技プログラマーの講座動画を見ます。これにより、高橋くんはレート $ 500 $ から $ (500+1500)/2\ =\ 1000 $ になります。 - しかし、例えば、以下の方法は最適ではありません。 - まず、レート $ 1500 $ の競技プログラマーの講座動画を見ます。これにより、高橋くんはレート $ 0 $ から $ (0+1500)/2\ =\ 750 $ になります。 - 次に、レート $ 1000 $ の競技プログラマーの講座動画を見ます。これにより、高橋くんはレート $ 750 $ から $ (750+1000)/2\ =\ 875 $ になります。 ### Sample Explanation 2 \- このケースでは高橋くんは $ 1 $ 個の講座動画しか見ることができません。 - レート $ 1500 $ の競技プログラマーの講座動画を見るのが最適です。