88分求助(就差一个点了,www)
查看原帖
88分求助(就差一个点了,www)
87549
石哈哈楼主2021/9/26 21:43
#include<cstdio>
#include<algorithm>
using namespace std;
const long length = 100001;
long long n,k,L,munmin = 1e+9;
long long N[length];

long long mun(long long l)
{
    long long Num = 0;
    for(int i =0;i<n;i++) Num += N[i] / l;
    return Num;
}

void search(long long l,long long r)
{
    long long mid = (l+r)/2;
    //printf("l = %d",l);printf("r = %d\n",r);
    if (l == r+1) 
    {
        L = r;
        return ;
    }
    if (mun(mid)>=k)search(l,mid);
    if (mun(mid)<k)search(mid,r);
}

int main()
{
    long long N_max = 0;
    scanf("%lld%lld",&n,&k);
    for(int i = 0;i<n;i++){scanf("%lld",&N[i]);N_max = max(N_max,N[i]);}
    search(N_max,1);
    printf("%lld",L);
    return 0;
}

2021/9/26 21:43
加载中...