题目链接:https://codeforces.com/contest/1400/problem/B
/*
两个人容积 p f
物品数量 cnts cntw
物品体积 v1 v2
问两人最多带走的物品数量
思路:假设只有一个人尽量带体积小的,若还有剩余则带体积大的
两个人: if (两人都带体积小的还不能带完) 那么只带体积小的,带体积大的也浪费空间
else 两人必须把体积小的都带完,带小的肯定比大的省空间
(证明:假设不把小的带完,而带了大的是最优结果,我们一定可以把那个体积大的换成小的
这样数量不变,但剩余空间变大了)
解决:对于else 情况,我们枚举p带体积小的数目从(0~cnts),进而f带体积小的数目从(cnts~0)
求这个过程的最大值
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int cnts, cntw;
int v1, v2;
int p,f;
int main(){
int T;
scanf("%d",&T);
while(T--){
int ans=0;
scanf("%d%d",&p,&f);
scanf("%d%d",&cnts,&cntw);
scanf("%d%d",&v1,&v2);
if(v1>v2){
swap(v1,v2);
swap(cnts,cntw);
}
int cnt=p/v1+f/v1;
if(cnt<=cnts){
printf("%d\n",cnt);
}
else{
int x1,y1, x2,y2;
for(int i=0;i<=cnts;i++){
x1=i;
if(p-v1*i<0) break;
x2=(p-v1*i)/v2;
int temp=f-(cnts-x1)*v1;
if(temp<0) continue;
y1=cnts-x1;
y2=min(cntw-x2,temp/v2);
ans=max(ans,x1+x2+y1+y2);
}
printf("%d\n",ans);
}
}
}
/*
1
33 27
6 10
5 6
*/