记录编号 |
128435 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2010冲刺十二]奶牛晒衣服 |
最终得分 |
100 |
用户昵称 |
奶猹 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.241 s |
提交时间 |
2014-10-17 17:58:47 |
内存使用 |
4.10 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<queue>
#include<climits>
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
int n,a,b;
int c[500001];
int d[500001];
int sum=0;
int l=1,r=0,mid;
int ans;
void init();
void work();
void outit();
bool divide(int );
int main()
{
freopen("dry.in","r",stdin);
freopen("dry.out","w",stdout);
init();
work();
outit();
return 0;
}
void init()
{
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=n;i++)
{
scanf("%d",&c[i]);
r=max(r,c[i]);
}
}
void work()
{
while(l<=r)
{
mid=(l+r)>>1;
if(divide(mid))
l=mid+1;
else
{
r=mid-1;
ans=mid;
}
}
}
void outit()
{
printf("%d\n",ans);
}
bool divide(int x)
{
int cnt=0;
int t=x*a;
for (int i=1;i<=n;++i)
{
if (c[i]<=t)continue;
if (!((c[i]-t)%b))
cnt+=(c[i]-t)/b;
else
cnt+=(c[i]-t)/b+1;
}
if (cnt<=x) return 0;
else return 1;
}