90pts 求助!!玄学WA
查看原帖
90pts 求助!!玄学WA
204666
Silky_Dove楼主2020/12/12 14:59

蒟蒻觉得这种写法没有啥问题,并且也开了 ull 有dalao能看下哪里错了嘛谢谢

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
const int SIZE = 4e5 + 100;
const int inf = 5e18;
int n,sum,lim,ans;
int ordin[SIZE],delta[SIZE];
inline int read(){
	int x = 0 , f = 1; char ch = getchar();
	while(!isdigit(ch)){if(ch == '-') f = -1;ch = getchar();}
	while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-48;ch = getchar();}
	return x;
}
bool check(int mon){
	int tot = 0;
	for(int i = 1;i <= n;i++){
		if((ordin[i] + delta[i] * mon) >= lim)
			tot += (ordin[i] + delta[i] * mon);
		if(tot >= sum) return true;
	}
	return false;
}
signed main(){
	n = read(),sum = read(),lim = read();
	for(int i = 1;i <= n;i++)
		ordin[i] = read();
	for(int i = 1;i <= n;i++)
		delta[i] = read();
	int l = 1 , r = inf;
	while(l <= r){
		int mid = (l + r) >> 1;
		if(check(mid)) ans = mid , r = mid - 1;
		else l = mid + 1;
	}
	cout << ans;
	return 0;
}
2020/12/12 14:59
加载中...