#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while(T--){ long long N,X,Y,P,Q,R; cin >> N >> X >> Y >> P >> Q >> R; /*double answer = 0; for(long long up=0; up<=N; up++,X+=Y){ double now = P*up; int n = N-up; vector dp(n+1); for(int i=1; i<=n; i++){ double v = 1.0/X*max(Q+0.0,Q-R+dp.at(i-1))+(1-1.0/X)*(Q+dp.at(i-1)); dp.at(i) = v; } now += dp.at(n); cout << fixed << setprecision(20) << up << " " << now << "\n"; answer = max(answer,now); }*/ auto f = [&](long long up) -> long double { long long n = N-up; long double ng = 1.0/(X+Y*up),ok = 1-ng; auto f2 = [&](long long stop) -> long double { long long work = n-stop; long double ret = work*(ok*Q+ng*(Q-R)); ret += 1/ng*Q; long double allok = 1,ok2 = ok; while(stop){ if(stop&1) allok *= ok2; ok2 *= ok2,stop >>= 1; } ret -= 1/ng*Q*allok; return ret; }; long long low = 0,high = n+1; while(high-low > 2){ long long mid1 = (low+low+high)/3,mid2 = (low+high+high)/3; if(f2(mid1) < f2(mid2)) low = mid1; else high = mid2; } long double ret = -1e18; for(long long i=low; i 2){ long long mid1 = (low+low+high)/3,mid2 = (low+high+high)/3; if(f(mid1) < f(mid2)) low = mid1; else high = mid2; } long double answer = -1e18; for(long long i=low; i