为啥90……
查看原帖
为啥90……
530180
KingPowers楼主2022/7/16 17:03

WA on #1 and TLE on#16

#include<bits/stdc++.h>
#define int ull
#define ull unsigned long long
using namespace std;
inline int read()
{
	int s=0,k=1;char ch=getchar();
	for(;!isdigit(ch);ch=getchar()) if(ch=='-') k=-1;
	for(;isdigit(ch);ch=getchar()) s=(s<<1)+(s<<3)+(ch^48);
	return s*k;
}
int n,S,L,h[1919810],a[1919810],l,r,ans;
bool check(int x)
{
	priority_queue<int,vector<int>,greater<int> >q;
	for(int i=1;i<=n;i++)
		if(h[i]+x*a[i]>=L)
			q.push(h[i]+x*a[i]);
	int res=0;
	while(q.size())
	{
		res+=q.top();
		q.pop();
		if(res>=S)
			return 1;
	}
	return 0;
}
signed main()
{
	n=read(),S=read(),L=read();
	for(int i=1;i<=n;i++) h[i]=read();
	for(int i=1;i<=n;i++) a[i]=read();
	l=0,r=1000000000000000000;
	while(l<=r)
	{
		int mid=(l+r)>>1;
		if(check(mid)) r=mid-1,ans=mid;
		else l=mid+1;
	}
	cout<<ans;
}
2022/7/16 17:03
加载中...