85pts求助
查看原帖
85pts求助
1002517
Adorable_楼主2024/8/5 08:22

蒟蒻代码:

#include<bits/stdc++.h>
using namespace std;

#define int long long
const int N = 2e5+5;
int n,s,l,ak[N],h[N];

bool check(int x)
{
	int cnt=0;
	for(int i=0;i<n;i++)
	{
		if(h[i]>=l or x>=(l-h[i]-1)/ak[i]+1)
		{
			if(h[i]>=s or x>=(s-h[i]-1)/ak[i]+1) return true;
			cnt+=h[i]+x*ak[i];
		}
		if(cnt>=s) return 1;
	}
	return 0;
}

signed main() 
{
    cin>>n>>s>>l;
    for(int i=0;i<n;i++) cin>>h[i];
    for(int i=0;i<n;i++) cin>>ak[i];
    int l=0,r=max(l,s);
	while(l<r)
	{
		int mid=(l+r)/2;
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	cout<<l<<endl;
    return 0;
}
2024/8/5 08:22
加载中...