#include using namespace std; typedef pair P; typedef pair> PP; typedef long long ll; const double EPS = 1e-10; const int INF = 1e9; const int MOD = 1e9+7; int dy[] = {0,1,0,-1}; int dx[] = {1,0,-1,0}; struct edge{int to,cost,tm;}; int func(double len,vector&L){ int cnt = 0; for(int i=0;i> N; vector L(N); for(int i=0;i> L[i]; } cin >> K; double low=0,hi=1e9,mid=0; while(hi > low+EPS){ mid = (low + hi)/2; if(func(mid,L) >= K){ low = mid; }else{ hi = mid; } } cout << fixed << setprecision(10) << low << endl; return 0; }