题解:B4465 [海淀区入门组 2025] 制作蛋糕
Sweet_Corn · · 题解
题目传送门
本题是一个裸二分答案,判断每个蛋糕材料够不够,如果不够就那万能粉来补,最后如果
需要注意:不开 long long 见祖宗、边界不能调小,设
代码:
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int n, k, a[100005], b[100005];
bool check(int x){
int sum = 0;
for(int i = 1; i <= n; i++){
if(a[i] * x > b[i]){
sum += a[i] * x - b[i];
if(sum > k)return 0;
}
}
return sum <= k;
}
signed main(){
cin >> n >> k;
for(int i = 1; i <= n; i++)cin >> a[i];
for(int i = 1; i <= n; i++)cin >> b[i];
int l = 0, r = 2e9, ans = 0;
while(l <= r){
int mid = (l + r) / 2;
if(check(mid)){
l = mid + 1;
ans = max(ans, mid);
}else r = mid - 1;
}
cout << ans;
return 0;
}