// poj 1064 Cable master /* 二分答案就行了。。。 */ #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int inf = 1<<29; __int64 a[10010],n,k; int main() { int b,c; while (scanf("%d%d",&n,&k)!=EOF) { __int64 sum=0; for (int i=0;i<n;i++) { scanf("%d.%d",&b,&c); a[i]=b*100+c; sum+=a[i]; } if (sum<k){ printf("0.00/n"); continue; } else if (sum==k) { printf("0.01/n"); continue; } // printf("%lld/n",sum); __int64 l=1,r=sum/k,mid; int i; while (l<=r) { mid=(l+r)>>1; sum=0; for (i=0;i<n && sum<k;i++) sum+=a[i]/mid; // printf("mid=%lld,sum=%lld/n",mid,sum); if (sum>=k) l=mid+1; else r=mid-1; } printf("%.2lf/n",(double)r/100.0); } system("pause"); return 0; }