#include using namespace std; #define REP(i,a,b) for(i=a;i'9')break;*x=(*x)*10+k-'0';}if(m)(*x)=-(*x);} void reader(ll *x){int k,m=0;*x=0;for(;;){mygc(k);if(k=='-'){m=1;break;}if('0'<=k&&k<='9'){*x=k-'0';break;}}for(;;){mygc(k);if(k<'0'||k>'9')break;*x=(*x)*10+k-'0';}if(m)(*x)=-(*x);} int N; int A[200000]; ll K; int main(){ int i, j, loop; double a, b, c, d; ll val; reader(&N); rep(i,N) reader(A+i); reader(&K); assert(1 <= N && N <= 200000); rep(i,N) assert(1 <= A[i] && A[i] <= 1000000000); assert(1LL <= K && K <= 10000000000LL); a = 0; b = 1e10; while(b > a+EPS && b > a*(1+EPS)){ c = (a+b)/2; d = 1.0 / c; val = 0; rep(i,N) val += (ll)(A[i]*d); if(val >= K) a = c; else b = c; } printf("%.10f\n",(a+b)/2); return 0; }