题目:https://www.luogu.com.cn/problem/P2440
这道题的思路跟P1873砍树这道题的思路一样。
P1873题目链接:https://www.luogu.com.cn/problem/P1873
代码:
#include <bits/stdc++.h>
#define MAXN 100050
#define ll long long
ll arr[MAXN];
using namespace std;int main()
{ll n,k,i,longest=0,r=0;cin>>n>>k;for(i=0; i<n; i++){cin>>arr[i];if(arr[i]>longest){longest=arr[i];r += arr[i];}}if(r<k){cout<<"0"<<endl;return 0;}ll mid,left=0,right=longest,a=0;while(left<=right){mid = (right-left)/2 + left;a=0;for(i=0; i<n; i++){a += arr[i]/mid;}if(a>=k){left = mid + 1;}else{right = mid - 1;}}mid = left-1;cout<<mid<<endl;return 0;
}