#include <bits/stdc++.h>
#define int long long
using namespace std;
double n,a[105],b[105],q[105],p[105],x;
bool check(int num){
int sum=0;
for (int i=1;i<=n;i++){
int ans,l=0,r=num,mid;
if (p[i]/a[i]>q[i]/b[i]){
ans=ceil(num/b[i])*q[i];
while (l<=r){
mid=(l+r)/2;
if (mid*p[i]+ceil((num-mid*a[i])/b[i])*q[i]<ans){
l=mid+1;
ans=mid*p[i]+ceil((num-mid*a[i])/b[i])*q[i];
}
else r=mid-1;
}
}
else {
ans=ceil(num/a[i])*p[i];
while (l<=r){
mid=(l+r)/2;
if (mid*q[i]+ceil((num-mid*b[i])/a[i])*p[i]<ans){
l=mid+1;
ans=mid*q[i]+ceil((num-mid*b[i])/a[i])*p[i];
}
else r=mid-1;
}
}
sum+=ans;
}
return sum<=x;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>x;
for(int i=1;i<=n;i++){
cin>>a[i]>>p[i]>>b[i]>>q[i];
}
check(5);
int l=0,r=1145141919810,mid,ans;
while (l<=r){
mid=(l+r)/2;
if (check(mid)){
ans=mid;
l=mid+1;
}
else r=mid-1;
}
cout<<ans;
}
感觉样例数据已经很强了,到底是哪里出了问题呢?