最后一个点求助(数据100000 100000000 木材长度都是40000)
查看原帖
最后一个点求助(数据100000 100000000 木材长度都是40000)
472695
睡眼惺忪楼主2021/2/7 22:18
#include <stdio.h>
int n,k;
int a[100005];

int check(int limit)
{
	long long sum=0;
	int i;
	for(i=0;i<n;i++)
	{
		sum+=a[i]/limit;
	}
	return sum>=k;
} 
int comp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b; 
} 

int main()
{
	int i,s=0;
	scanf("%d %d",&n,&k);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		s+=a[i];
	}
	if(s<k)
	{
		printf("0");
		return 0;
	}
	qsort(a,n,sizeof(int),comp);
	int f=0,l=a[n-1],mid,ans=0;
	while(f<=l)
	{
		mid=(f+l)/2;
		if(check(mid))
		{
			f=mid+1;
			ans=mid;
		}
		else
		{
			l=mid-1;
		}
	}
	printf("%d",ans);
	return 0;
}
2021/2/7 22:18
加载中...