90分 第一个点wa 最后一个TLE 求调
查看原帖
90分 第一个点wa 最后一个TLE 求调
235839
ST_AS_IS_ZHY楼主2023/10/26 19:53
#include<bits/stdc++.h>
using namespace std;
unsigned long long h[200001],a[200001],m,t,x,n,l,r; 
const long long maxn=1e18;
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>m>>x;
	for(unsigned long long i=1;i<=n;i++){
		cin>>h[i];
	}
	for(unsigned long long i=1;i<=n;i++){
		cin>>a[i];
	}
	r=maxn;
	while(l<=r){
		unsigned long long mid=(l+r)/2;
		unsigned long long sum=0;
		for(unsigned long long i=1;i<=n;i++){
			if(h[i]+a[i]*mid>=x) sum+=h[i]+a[i]*mid;
			if(sum>=m) break;
		}
		if(sum>=m){
			r=mid-1;
		}
		else{
			l=mid+1;
		}
	}
	cout<<l<<'\n';
	return 0;
}

2023/10/26 19:53
加载中...