求助大佬
查看原帖
求助大佬
542793
whisp1r楼主2021/12/18 16:41

面向样例结果一不小心AC了 不知道为啥

#include<stdio.h>
#include<iostream>
#include<algorithm>
#define llu unsigned long long 
#define inf 0x7fffffffffffff
using namespace std;
llu n,s,l,res,ans,mid=0;
bool cnt=0;
llu h[2000009],a[2000009];
bool check(llu x){
	llu res=0;
	for(int i=1;i<=n;i++){
		if(h[i]+mid*a[i]>=l)
		res=res+h[i]+mid*a[i];
		if(res>=s){
			return 0;
		}
	}
	return 1;
}
int main()
{
	cin>>n>>s>>l;//n,S,L,树的数量、订单总量和单块木料长度限制
	//每块木料的长度不能小于 L   木料必须是整棵树(即不能为树的一部分)
//	if(s<l){
//		cout<<0;
//		return 0;
//	}
	llu H=0;
	for(int i=1;i<=n;i++){
		scanf("%llu",&h[i]);
		if(h[i]>=l)
		H+=h[i]; 
	}
	if(H>=s){
		cout<<0;
		return 0;
	}
	for(int i=1;i<=n;i++){
		scanf("%llu",&a[i]);
	}
	llu l=0,r=1e18+9;
	while(l+1<r){
		mid=(l+r)>>1;
		if(check(mid)){
			l=mid;
			ans=max(ans,mid);
		}
		else{
			r=mid;
		}
	}
	cout<<ans+1;
	return 0;
}
2021/12/18 16:41
加载中...