#1 Wa , #16 Tle
查看原帖
#1 Wa , #16 Tle
1385996
ZSYhaouuan楼主2024/8/28 11:19
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,s,l,h[1000000],a[1000000];
inline unsigned long long read(){
    unsigned long long x=0,c=1;
    char ch=' ';
    while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();
    while(ch=='-') c*=-1,ch=getchar();
    while(ch<='9'&&ch>='0')x=x*10+ch-'0',ch=getchar();
    return x*c;
}
bool check(unsigned long long x){
	unsigned long long cnt=0;
	for(unsigned long long i=1;i<=n;i++){
		if(h[i]+a[i]*x>=l){
			cnt+=h[i]+a[i]*x;
		}
		if(cnt>=s) break;
	}
	if(cnt<s){
		return false;
	}else{
		return true;
	}
}
int main(){
	cin>>n>>s>>l;
	for(unsigned long long i=1;i<=n;i++) h[i]=read();
	for(unsigned long long i=1;i<=n;i++) a[i]=read();
	
	unsigned long long left=0,right=1e18,mid;
	while(left<=right){
		mid=(left+right)>>1;
		if(check(mid)){
			right=mid-1;
		}else{
			left=mid+1;
		}
		//cout<<"mid:"<<mid<<'\n';
	}
	cout<<left;
	return 0;
}
2024/8/28 11:19
加载中...