求助90,WA了一个,T了一个
查看原帖
求助90,WA了一个,T了一个
672837
DaShabby楼主2023/3/2 17:42
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
typedef pair<int,int> pii;
const int maxn=5e5+34;
ll a[maxn],cnt,idx,tot,h[maxn];
int check(int n,ll ans,ll len,ll sum){
	ll can=0;
	for(int i=1;i<=n;i++){
		if(h[i]+ans*a[i]>=len)can+=h[i]+ans*a[i];
		if(can>=sum)return 1;
	}
	return can>=sum;
}
void work(){
	int n,m,wid;
	ll ans=0,MAX=0;
	ll sum,len;
	scanf("%d%llu%llu",&n,&sum,&len);
	for(int i=1;i<=n;i++)scanf("%llu",&h[i]);
	for(int i=1;i<=n;i++)scanf("%llu",&a[i]);
	ll l=0,r=max(sum,len);
	while(l<=r){
		ll mid=(l+r)/2;
		if(check(n,mid,len,sum))r=mid-1,ans=mid;
		else l=mid+1;
//		cout<<l<<' '<<r<<endl;
	}

	printf("%llu\n",ans);
}
int main()
{
	work();
	return 0;
}
2023/3/2 17:42
加载中...