求助!
查看原帖
求助!
1099150
lyh4楼主2024/3/30 11:20

90分,14点与19点WA,如何AC?

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

unsigned long long n,num[2000005],a[2000005],s,l;
bool bl(unsigned long long u)
{
	unsigned long long all = 0;
	for(unsigned long long i = 0; i < n; i++)
	{
		unsigned long long tmp = num[i] + a[i] * u;
		if(tmp >= l)all += tmp;
		if(all >= s)return true;
	}
	return false;
}
int main()
{
    cin >>n>>s>>l;
    for(unsigned long long i = 0; i < n; i++)cin >>num[i];
    for(unsigned long long i = 0; i < n; i++)cin >>a[i];
    unsigned long long l = 0,r = 1e18;
    for(int i = 0; i < n; i++)
    {
    	r = min(r,(max(s,l) - num[i])/a[i]+1);
	}
	while(l != r)
	{
		unsigned long long mid = (l+r)/2;
		if(bl(mid))r = mid;
		else l = mid+1;
	}
	cout <<l;
}
2024/3/30 11:20
加载中...