球条

P2440 木材加工

xxJoy0420 @ 2024-12-15 11:57:53

rt。

#include<bits/stdc++.h>
using namespace std;
int n,k,a[100005],l,r=-1e9,mid;
bool check(int x)
{
    long long sum=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]<x)
        return false;
        sum+=a[i]/x;
    }
    return sum>=k;
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        r=max(r,a[i]);
    }
    while(l+1<r)
    {
        mid=(l+r)/2;
        if(check(mid)) l=mid;
        else r=mid;
    }
    cout<<l;
    return 0;
}

|