P4058 90分 求助!
  • 板块题目总版
  • 楼主_k_e_v_i_n_
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/4/17 12:28
  • 上次更新2023/10/28 03:29:51
查看原帖
P4058 90分 求助!
431956
_k_e_v_i_n_楼主2022/4/17 12:28

提交记录

WA 1,TLE 1,其他 AC。

代码(已格式化):

#include<bits/stdc++.h>
using namespace std;
unsigned long long n,s,L,a[300001],h[300001],l,r=1e18,mid;
int check(unsigned long long x) {
	unsigned long long cnt=0;
	for(int i=1; i<=n; i++) {
		if(h[i]+a[i]*x>=L) {
			cnt+=h[i]+a[i]*x;
		}
	}
	if(cnt>s) return 1;
	else if(cnt==s) {
		cout<<mid;
		exit(0);
	}
	return 0;
}
int main() {
	cin>>n>>s>>L;
	for(int i=1; i<=n; i++)	cin>>h[i];
	for(int i=1; i<=n; i++)	cin>>a[i];
	while(l<=r) {
		mid=(l+r)/2;
		if(check(mid))	r=mid-1;
		else	l=mid+1;
	}
	cout<<l;
	return 0;
}

2022/4/17 12:28
加载中...