记录编号 258230 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010冲刺十二]奶牛晒衣服 最终得分 100
用户昵称 Gravatar洛克索耶夫 是否通过 通过
代码语言 C++ 运行时间 0.239 s
提交时间 2016-05-05 10:49:52 内存使用 2.22 MiB
显示代码纯文本
#include<bits/stdc++.h>

int N,A,B,wet[500010],ans=0,mid,l=0,r=0;

inline int GetMax(const int& a, const int& b)
{
	return a>b?a:b;
}

inline int Upward(const int& a, const int& b)
{
	if(a%b!=0)	return a/b+1;
	return a/b; 
}

inline bool Judge(const int& k)
{
	int cnt=0;
	for(int i=1;i<=N;i++)
		if(wet[i]>k*A)
			cnt+=Upward(wet[i]-k*A,B);	
			//如果wet[i]<=ans*A,则第i件衣服可以自然晒干
			//否则就要用Upward(wet[i]-ans*A,B)时间的烘干机 	
	if(cnt<=k)	return true;//二分的时间多了 
	return false;	
}

int main()
{
	freopen("dry.in","r",stdin);
	freopen("dry.out","w",stdout); 
	scanf("%d%d%d",&N,&A,&B);//用二分,用二分... 
	for(int i=1;i<=N;i++)
	{
		scanf("%d",&wet[i]); 
		r=GetMax(r,wet[i]);
	}
		
	while(l<=r){
		mid=(l+r)/2;
		if(Judge(mid)){
			ans=mid;
			r=mid-1;
		}
		else	l=mid+1;
	}
	
	printf("%d\n",ans);	
	return 0;
}