完全傻了,求助
查看原帖
完全傻了,求助
1284088
meifan666楼主2024/7/16 20:55
#include<bits/stdc++.h>
using namespace std;
unsigned long long s,L;
unsigned long long h[200100],n;
unsigned long long a[200100];
unsigned long long l,r,mid,ans;
bool check(unsigned long long x){
	unsigned long long sum=0;
	for(unsigned long long i=0;i<n;i++){
		if(h[i]+x*a[i]>=L)sum+=h[i]+x*a[i];
	}
	return sum>=s;
}
signed main(){
	ios::sync_with_stdio(false);
	cin>>n>>s>>L;
	for(unsigned long long i=0;i<n;i++)cin>>h[i];
	for(unsigned long long i=0;i<n;i++)cin>>a[i];
	l=0;
	r=1000000000000000000;
	while(l<=r){
		mid=(l+r)/2;
//		printf("%lld %lld->%lld\n",l,r,mid);
		if(check(mid)){
			ans=mid;
			r=mid-1;
		}else{
			l=mid+1;
		}
	}
	cout<<ans;
	return 0;
}

和别人的正解几乎一样,但只有90分,救我!

2024/7/16 20:55
加载中...