## https://yukicoder.me/problems/no/3559 def solve2(N, X, Y, A, B): if A >= B: l0 = 0 if X + Y < 0: l0 = (- X - Y) // A if l0 * A + X + Y < 0: l0 += 1 if N < l0: return X + N * A, Y X += l0 * A N -= l0 low = 0 high = N def aaa(l0): a = X + Y + l0 * A - A + 1 l = a // B l += (1 if a % B > 0 else 0) return l + l0 <= N, l while high - low > 1: mid = (high + low ) //2 if aaa(mid)[0]: low = mid else: high = mid if aaa(high)[0]: v = high else: v = low _, w = aaa(v) ans_X = X + v * A ans_Y = Y - w * B n = N - (w + v) ans_Y -= n * B return ans_X, ans_Y else: # B > A l0 = 0 if X + Y >= 0: l0 = (X + Y) // B if -l0 * B + X + Y >= 0: l0 += 1 if N < l0: return X, Y - N * B Y -= l0 * B N -= l0 low = 0 high = N def aaa(l0): a = - B + 1 + l0 * B - X - Y l = a // A l += (1 if a % A > 0 else 0) return l + l0 <= N, l while high - low > 1: mid = (high + low ) //2 if aaa(mid)[0]: low = mid else: high = mid if aaa(high)[0]: v = high else: v = low _, w = aaa(v) ans_X = X + w * A ans_Y = Y - v * B n = N - (w + v) ans_X += n * A return ans_X, ans_Y def solve(N, X, Y, A, B): if A <= 0 and B <= 0: if X + Y < 0: ans_X = X + N * A ans_Y = Y else: ans_X = X ans_Y = Y - N * B return ans_X, ans_Y elif A <= 0: if X + Y < 0: ans_X = X + N * A ans_Y = Y else: l0 = (X + Y) // B if X + Y >= l0 * B: l0 += 1 if N < l0: ans_X = X ans_Y = Y - N * B else: ans_X = X + (N - l0) * A ans_Y = Y - l0 * B return ans_X, ans_Y elif B <= 0: if X + Y >= 0: ans_X = X ans_Y = Y - N * B else: l0 = (-X - Y) // A if l0 * A < - X - Y: l0 += 1 if N < l0: ans_X = X + N * A ans_Y = Y else: ans_X = X + l0 * A ans_Y = Y - (N - l0) * B return ans_X, ans_Y else: return solve2(N, X, Y, A, B) def main(): T = int(input()) answers = [] for _ in range(T): N, X, Y, A, B = map(int, input().split()) ans = solve(N, X, Y, A, B) answers.append(ans) for ans in answers: print(ans[0], ans[1]) if __name__ == "__main__": main()