14 条题解

  • 0
    @ 2026-5-14 16:34:23
    #include <bits/stdc++.h>
    using namespace std;
    int n,m,maxn,a[200000];
    int main()
    {
        int z=1,y;
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i],y=max(y,a[i]);
        cin>>m;
        while(z<=y)
        {
            int x=z+(y-z)/2;
            int s=0;
            for(int i=1;i<=n;i++) s+=a[i]/x;
            if(s>=m) maxn=max(maxn,x),z=x+1;
            else y=x-1;
        }
        if(maxn==0) cout<<"Failed";
        else cout<<maxn;
        return 0;
    }
    

    信息

    ID
    381
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者