//package misc.ukiepc2025 private fun solve() { val (n, aInt, bInt, x, y) = readInts() val a = aInt.toLong(); val b = bInt.toLong() fun solveTired(n: Int): Long { val cycle = y + x if (n >= cycle) { val c = maxOf(a * x, b * (y + x)) return c * (n / cycle) + solveTired(n % cycle) } if (n <= y) return b * n return maxOf(b * n, a * (n - y)) } fun solveFresh(n: Int): Long { if (n <= x) return a * n return a * x + solveTired(n - x) } println(solveFresh(n)) } fun main() = repeat(readInt()) { solve() } private fun readInt() = readln().toInt() private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }