#!/usr/bin/env python3

for tn in range(int(input())):
  (n, strong, weak, strength, brength) = map(int, input().split())

  def get_score(streaks):
    gdays=max(0, strength*streaks)
    bdays=max(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)

  best=0

  a=0
  b=(n//(strength+brength))+1
  while a<=b:
    u = (a*2+b+0) // 3
    v = (a+b*2+2) // 3
    us = get_score(u)
    vs = get_score(v)
    if u < v:
      a = u+1
    else:
      b = v-1
    best = max(best, max(us, vs))

  print(best)
