#include <bits/stdc++.h>
#define mid ((l+r)>>1)
using namespace std;
int l,r,n,k;
int D[100009];
inline bool check (int x){
int res=0;
for (int i=1;i<=n;++i){
res+=D[i]/x;
}
return res<k;
}
int main (){
scanf ("%d %d",&n,&k);
for (int i=1;i<=n;++i)
scanf ("%d",&D[i]);
l=1,r=100000001;
while (l<=r){
if (check (mid)){
r=mid-1;
}
else l=mid+1;
}
printf ("%d\n",l-1);
return 0;
}
为什么答案需要减去一
好像题解都不用减的,是二分写法的问题么