#include<bits/stdc++.h>
int N,n,m,p;
int h[8192],s[8192];//8192=2<<13
double f[16][8192];
int g[16][8192];
int a[400];
using namespace std;
#define P pair<int,double>
double operator%(const P&a,const P&b){
return (b.second-a.second)/(b.first-a.first);
}
void div(int x){
long long q=0;
for(int i=0;i<=p;i++){
q=q*1000000000+a[i];a[i]=q/x;q%=x;
}
}
int main(){
scanf("%d%d%d",&N,&m,&p);p=p/9+1;
scanf("%d",&h[n=1]);
for(int i=2;i<=N;i++){
int t;scanf("%d",&t);if(h[1]<t)h[n]=t;
}
sort(h+1,h+n+1);
if(m>n)m=n;
for(int i=1;i<=n;i)f[0][i]=h[1],s[i]=s[i-1]+h[i];
int l=14;if(l>m)l=m;
for(int i=1;i<=l;i++){
static P q[8024];
for(int j=2,l=1,r=0;j<=n;j++){
P c=P(j-2,s[j-1]-f[i-1][j-1]);
for(;l<r&&(q[r-1]%q[r])>(q[r]%c);r--);
q[r]=c;
P t=P(j,s[j]);
for(;l<r&&(q[l]%t)<(q[l+1]%t);l);
g[i][j]=q[l].first+1;
f[i][j]=(q[l]%t);
}
}
int [16];[l]=n-(m-l);
for(int i=l;i;i--)[i-1]=g[i][[i]];
a[0]=h[1];
for(int i=1;i<=l;i++)a[0]+=s[[i]]-s[[i-1]],div([i]-[i-1]+1);
for(int i=_[l]+1;i<=n;i++)a[0]+=h[i],div(2);
printf("%d.",a[0]);
for(int i=1;i<=p;i++)printf("%09d",a[i]);
}