二分,95pts,#2WA,求调
查看原帖
二分,95pts,#2WA,求调
775208
Alvin1204楼主2024/8/9 11:11
#include<bits/stdc++.h>
using namespace std;
int n,h[200010],a[200010];
long long S,L;
bool check(long long x){
	unsigned long long cnt=0;
	for(int i=1;i<=n;i++)
		if(1LL*(h[i])+1LL*(a[i])*x>=L) cnt+=(1LL*(h[i])+1LL*(a[i])*x);
	return cnt>=S;
}
int main(){
	scanf("%d%lld%lld",&n,&S,&L);
	for(int i=1;i<=n;i++) scanf("%d",&h[i]);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	long long l=0,r=1e18,ans;
	if(check(0)) printf("0"),exit(0);//不加这一行只有90pts(#1WA)
	while(l<=r){
		long long mid=l+(r-l>>1);
		if(check(mid)) ans=mid,r=mid-1;
		else l=mid+1;
	}
	printf("%lld",ans);
	return 0;
}
2024/8/9 11:11
加载中...