80,萌新求助
查看原帖
80,萌新求助
542974
William_qwq楼主2021/11/16 21:24
#include<bits/stdc++.h>
using namespace std;
long long n,s,l;
long long h[200010],a[200010];
bool check(long long x)
{
	long long i,sum=0;
	for(i=1;i<=n;i++)
	{
		if(h[i]+a[i]*x>=l)
		{
			sum+=h[i]+a[i]*x; 
		}
	}
	if(sum>=s) return 1;
	else return 0;
}
int main()
{
	long long i,j,k,maxa=0;
	cin>>n>>s>>l;
	for(i=1;i<=n;i++)
	{
		cin>>h[i];
	}
	for(i=1;i<=n;i++)
	{
	    cin>>a[i];
	    maxa=max(maxa,a[i]);
	}
	int left=0,right=s/maxa+1;
	while(right-left>=5)
	{
		int mid=(left+right)/2;
		if(check(mid)==1)
		{
			right=mid;
		}
		else
		{
			left=mid+1;
		}
	}
	for(i=left;i<=right;i++)
	{
		if(check(i)==1)
		{
			cout<<i;
			break;
		}
	}
}
2021/11/16 21:24
加载中...