MnZn求助这道水题
查看原帖
MnZn求助这道水题
198719
洛璟楼主2020/10/31 10:13

WA了,但是不知道为什么QwQ

思路和题解大致相同,二分答案

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,h,a,b;
int bl[100010];
inline int read()
{
	int x=0,f=1;
	char c=getchar();
	while(c<'0' || c>'9')
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0' && c<='9')
	{
		x=(x<<1)+(x<<3)+(c^'0');
		c=getchar();
	}
	return x*f;
}
bool check(int mid)
{
	int tmp=0;
	for(int i=1;i<=n;i++)
	{
		if(bl[i]>b*mid) tmp=tmp+(int)(bl[i]-b*mid+(a-b-1))/(a-b);
		if(tmp>mid) return 0;
	}
	return 1;
}
signed main()
{
	n=read();
	a=read();
	b=read();
	int ma=0;
	for(int i=1;i<=n;i++)
	{
		bl[i]=read();
		ma=max(ma,bl[i]);
	}
	int r=(ma+1)/b,l=1;
	while(l<r)
	{
		int mid=(l+r)/2;
		if(check(mid)==0) l=mid+1;
		else r=mid;
	}
	printf("%lld",l);
	return 0;
}
2020/10/31 10:13
加载中...