88分求助,第七个点WA了
  • 板块P2440 木材加工
  • 楼主lyc呐
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/7/22 22:42
  • 上次更新2023/11/6 22:33:10
查看原帖
88分求助,第七个点WA了
242490
lyc呐楼主2020/7/22 22:42
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<cmath>
using namespace std;
int main()
{
	int n,m;
	long long sum=0;
	cin>>n>>m;
	int arr[100005];
	for(int i=0;i<n;i++)
		cin>>arr[i],sum+=arr[i];
	if(sum<m)
	{
		cout<<0;
		return 0;
	}
	sort(arr,arr+n);
	int low=1,high=arr[n-1];
	int count=0,ans=0;
	while(low<=high)
	{
		int mid=(low+high)/2;
		for(int i=0;i<n;i++)
			count+=arr[i]/mid;
		if(count<m)
			high=mid-1,count=0;
		else if(count>m)
			low=mid+1,count=0;
		else if(count==m)
		{
			ans=mid;
			break;
		}
	}
	for(ans+=1;;ans++)
	{
		count=0;
		for(int i=0;i<n;i++)
			count+=arr[i]/ans;
		if(count<m)
			break;		
	}
	cout<<ans-1;
 } 
2020/7/22 22:42
加载中...