90分,前两个wa了,怎么回事?
查看原帖
90分,前两个wa了,怎么回事?
551894
lemon2021楼主2023/5/12 21:20
#include<iostream>
#include<cmath>
#include<algorithm>
const long long MAXN=100000001;
using namespace std;
long long n;
long long s;
long long d;
long long a[MAXN];
long long b[MAXN];
bool ch(long long c)
{
	long long sum=0;
	for(int i=1;i<=n;i++)
	{
		if(d<=b[i]+a[i]*c)
		{
			sum+=a[i]*c+b[i];
		}
		if(s<=sum)
		{
			break;
		}
	}
	if(s<=sum)
	{
		return true;
	}
	else
	{
		return false;
	}
}
int main() 
{
    cin>>n>>s>>d;
    for(int i=1;i<=n;i++) 
	{
		cin>>b[i];
	}
    for(int i=1;i<=n;i++) 
	{
		cin>>a[i];
	}
  long long l=0;
	long long r=1000000000000000001;
	while(l<=r)
	{
		long long mid=(l+r)/2;
		if(ch(mid)==true)
		{
			r=mid-1;
		}
		else
		{
			l=mid+1;
		}
	}
	cout<<l;
  return 0;
}
2023/5/12 21:20
加载中...