import std.algorithm, std.array, std.container, std.range, std.bitmanip; import std.numeric, std.math, std.bigint, std.random, core.bitop; import std.string, std.conv, std.stdio, std.typecons; void main() { auto n = readln.chomp.to!long; auto li = readln.split.map!(to!long); auto k = readln.chomp.to!long; auto maxL = li.reduce!(max); bool calc(real x, real _) { long c = 0; foreach (l; li) { auto d = (l / x).floor; if (d >= long.max || d >= long.max - c || c + d >= k) return true; c += d.to!long; } return c >= k; } auto eps = 10.to!real ^^ (-10); auto r = iota(eps, maxL, eps).assumeSorted!(calc).lowerBound(0); writefln("%.9f", r.back); }