95分 第一个点WA了 求助!!!
查看原帖
95分 第一个点WA了 求助!!!
1273684
_std_O2楼主2024/7/11 20:51
#include<iostream>
#define int unsigned long long
using namespace std;
const int N=2e5+5;
int r=1000000000000,l,a[N],h[N],n,S,L,mid,ans;
bool check(int x)
{
	int sum=0;
	for(int i=1;i<=n;i++)
	{
		if(h[i]+a[i]*x>=L) sum+=h[i]+a[i]*x;
		if(sum>S) break;
	}
	if(sum<S) return 1;
	return 0;
}
signed main()
{
	cin>>n>>S>>L;
	for(int i=1;i<=n;i++) cin>>h[i];
	for(int i=1;i<=n;i++) cin>>a[i];
	int cnt=0;
	while(l<=r)
	{
		mid=l+r>>1;
		if(check(mid)){
			l=mid+1;
			ans=mid;
		}
		else r=mid-1;
		cnt++;
		if(cnt>=10000){
			cout<<0;
			exit(0);
		}
	}
	cout<<ans+1;
}
2024/7/11 20:51
加载中...