#include using namespace std; int64_t strong,weak,strength,brength,n; int64_t get_score(int64_t streaks){ int64_t gdays=max((int64_t)0,strength*streaks); int64_t bdays=max((int64_t)0,brength*(streaks-1)); if (gdays+bdays>n){ gdays-=min(strength,(gdays+bdays)-n); } if (gdays+bdays>n){ bdays-=min(brength,(gdays+bdays)-n); } if (gdays+bdays>n){ return -1; } return strong*gdays+weak*(n-gdays-bdays); } int main(){ for (int tn=0; (tn--) or (cin>>tn) and (tn--);){ cin>>n>>strong>>weak>>strength>>brength; int64_t best=0; int64_t a=0,b=(n/(strength+brength))+1; while (a<=b){ int64_t u=(a*2+b+0)/3, us=get_score(u); int64_t v=(a+b*2+2)/3, vs=get_score(v); if (us