#include #include int comp(const void *a, const void *b){ if(*(int *)a < *(int *)b){ return 1; } else if(*(int *)a == *(int *)b){ return 0; } return -1; } double binary_search(int n, int x[], long long k){ double l = 0, r = 1000000000; for(int aiueo = 0;aiueo < 75;aiueo++){ long long current_num = 0; double mid = (l + r) / 2.0; for(int i = 0;i < n;i++){ current_num += (int)(x[i] / mid); } if(k <= current_num){ l = mid; } else{ r = mid; } } return l; } int main(){ int n; long long k; int length[200000]; scanf("%d", &n); for(int i = 0;i < n;i++){ scanf("%d", &length[i]); } scanf("%lld", &k); printf("%f\n", binary_search(n, length, k)); return 0; }