#include <bits/stdc++.h>
using namespace std;
int a[105];
int main()
{
int maxn,minn,mid,i,n,m,j,s,zd=INT_MIN;
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i];
if(a[i]>zd) zd = a[i];
}
cin>>m;
maxn = zd;minn = 1;
while(maxn>minn){
mid = (maxn+minn)/2;
s = 0;
for(i=1;i<=n;i++) s = s+a[i]/mid;
if(s<m){
maxn = mid-1;
}
if(s>m){
minn = mid+1;
}
if(s==m){
for(i=mid+1;;i++){
int ans=0;
for(j=1;j<=n;j++) ans = ans+a[j]/i;
if(ans<m){
cout<<i-1;
return 0;
}
}
}
}
for(i=mid+1;;i++){
int ans=0;
for(j=1;j<=n;j++) ans = ans+a[j]/i;
if(ans<m){
cout<<i-1;
return 0;
}
}
return 0;
}
二分会吧(暴力也能过,本人试过)
AC图片