#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,i,j,ans;
int a[105],b[105],c[105],t,ntc,ntm;
int tm1,tc,l1,r1,l2,r2;
bool cha(int p1,int p2){
for(int i=1;i<=n;i++){
if(p1*a[i]+p2*b[i]>c[i]) return false;
}
return true;
}
signed main(){
scanf("%lld",&t);
while(t--){
scanf("%lld%lld%lld",&n,&tc,&tm1),ans=0;
for(i=1;i<=n;i++) scanf("%lld%lld%lld",&a[i],&b[i],&c[i]);
l1=1,r1=tc;
ntc=tc,ntm=tm1;
while(l1<=r1){
m=(l1+r1)>>1;
int flag=0;
l2=1,r2=tm1;
while(l2<=r2){
int mid=(l2+r2)>>1;
if(cha(m,mid)){
flag=1;
if(m+mid>ans){
ans=m+mid;
ntc=m,ntm=mid;
}
l2=mid+1;
}
else r2=mid-1;
}
if(flag) l1=m+1;
else r1=m-1;
}
printf("%lld\n",tc+tm1-ntc-ntm);
}
return 0;
}
简单思路就是二分套二分。
求帮忙看看二分哪里写挂了或者是如何调。