解
2026-02-11 17:42:31
发布于:浙江
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std ;
int n , k ;
int a[100010] ;
bool check( int x ){
int sum = 0 ;
for ( int i = 1 ; i <= n ; i++ ){
sum += ceil ( 1.0 * a[i] / x ) ;
}
return sum >= k ;
}
int main(){
freopen( "Prince.in" , "r" , stdin ) ;
freopen( "Prince.out" , "w" , stdout ) ;
cin >> n >> k ;
for ( int i = 1 ; i <= n ; i++ ){
cin >> a[i] ;
}
int l = 1 , r = 1e8 , ans = 0 ;
while ( l <= r ){
int mid = ( l + r ) / 2 ;
if ( check ( mid ) ){
ans = mid ;
l = mid + 1 ;
}else{
r = mid - 1 ;
}
}
cout << ans ;
fclose(stdin);
fclose(stdout) ;
return 0 ;
}
这里空空如也

有帮助,赞一个