84分求助,赏关
查看原帖
84分求助,赏关
910271
zhengshuyue楼主2023/9/19 22:44

最后一个点WA了

#include<bits/stdc++.h>
using namespace std;
#define N 1000005
int n,k,l,r,mid,malx=0,w;
int a[N];
inline int sum(int x){
    int p=0;
    for(int i=1;i<=n;i++)p+=a[i]/x;
    return p;
}
int main(){
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]),malx+=a[i];
    if(k>malx){
        printf("%d",0);
        return 0;
    }
    l=1;r=malx;
    while(l<=r){
        mid=(l+r)>>1;
        w=sum(mid);
        if(w<k)r=mid-1;
        else{
            if(mid+1>r||sum(mid+1)<k)break;
            else l=mid+1;
        }
    }
    printf("%d",mid);
    return 0;
} 
2023/9/19 22:44
加载中...