玄学WA求助
查看原帖
玄学WA求助
201192
最後楼主2020/8/3 08:45
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int n;
long long m,limit;
long long high[maxn];
long long grow[maxn];
bool check(long long num)
{
	long long ans=0;
	for(int i=1;i<=n;i++)
	{
		if(high[i]+num*grow[i]>=limit)ans+=high[i]+num*grow[i];
		if(ans>=m)return true; 
	}
	return false;
}
int main()
{
	scanf("%d%lld%lld",&n,&m,&limit);
	for(int i=1;i<=n;i++)
	scanf("%lld",&high[i]);
	for(int i=1;i<=n;i++)
	scanf("%lld",&grow[i]);
	long long left=0,right=100000000000000000,flag=0;
	while(left<=right)
	{
		long long mid=(left+right)/2;
		if(check(mid))
		{
			flag=mid;
			right=mid-1;
		}
		else left=mid+1;
	}
	printf("%lld",flag);
	return 0; 
}

玄学90,改改右边界每次WA的两个点还不同 1 2 3

2020/8/3 08:45
加载中...