题解
2025-03-14 18:28:36
发布于:江西
13阅读
0回复
0点赞
# include <bits/stdc++.h>
using namespace std ;
double a[100005],n,k,m;
bool check(double mid){
int sum=0;
for(int i=0;i<n;i++) sum+=ceil(a[i]/mid);
if(sum>=k) return 1;
return 0;
}
int main ( )
{
freopen( "Prince.in", "r", stdin);
freopen( "Prince.out", "w", stdout);
cin >> n >> k;
for ( int i = 0; i < n; i ++) {
cin >> a[ i];
m = max( m, a[ i]);
}
int l = 1, r = m, ans = 0;
while (l <= r) {
double mid = ( l + r) / 2;
if ( check( mid)) {
ans = mid;
l = mid + 1;
}
else r = mid - 1;
}
cout << ans;
fclose( stdin);
fclose( stdout);
return 0;
}
这里空空如也
有帮助,赞一个