首先令a<b
设某次要取出t组
为什么要变换成相减的形式?
emm 窝也不知道 再看看 说不定哪天就知道了(
//cyc
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define mst(a) memset(a,0,sizeof a)
#define int long long
using namespace std;
typedef pair<int,int> pii;
/*
____ ____ _____ .____________ _____
/_ /_ | / | || ____/_ | / | |
| || |/ | ||____ \ | |/ | |_
| || / ^ / \| / ^ /
|___||___\____ /______ /|___\____ |
|__| \/ |__|
*/
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int _;
cin>>_;
while(_--){
// int ans=0;
int x,y,a,b;
cin>>x>>y>>a>>b;
if(a>b)swap(a,b);
// if(x>y)swap(x,y);
int del=b-a;
int rr=1e9;
int ll=0;
while(ll<=rr){
int mid=(ll+rr)/2;
int tempa,tempb;
tempa=x-mid*a;
tempb=y-mid*a;
if(tempa<0||tempb<0){
rr=mid-1;
}
else{
if(del==0){
ll=mid+1;
continue;
}
if(tempa/del+tempb/del>=mid){
ll=mid+1;
}
else{
rr=mid-1;
}
}
}
cout<<ll-1<<endl;
}
}