from collections import deque, defaultdict, Counter
from heapq import heappush, heappop, heapify
from math import inf, sqrt, ceil
from functools import lru_cache
from itertools import accumulate, combinations, permutations, product
from typing import List
from bisect import bisect_left, bisect_right
import sys
input=lambda:sys.stdin.readline().strip('\n')
mis=lambda:map(int,input().split())
ii=lambda:int(input())
T = ii()
for _ in range(T):
N, G, B = mis()
m = (N+1)//2
ans = (m-1)//G*(G+B) + (m%G if m%G else G)
print(max(N, ans))
#include <bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
int t;
cin>>t;
while(t--){
long long n,g,b;
cin>>n>>g>>b;
long long need = ceil((double)n/2.0);
long long ans = (need/g)*(g+b);
if(need%g==0)
ans-=b;
else
ans+=need%g;
cout<<max(ans,n)<<endl;
}
return 0;
}
834A - The Useless Toy | 1407D - Discrete Centrifugal Jumps |
1095B - Array Stabilization | 291B - Command Line Arguments |
1174B - Ehab Is an Odd Person | 624B - Making a String |
1064C - Oh Those Palindromes | 1471A - Strange Partition |
1746A - Maxmina | 1746B - Rebellion |
66C - Petya and File System | 1746C - Permutation Operations |
1199B - Water Lily | 570B - Simple Game |
599C - Day at the Beach | 862A - Mahmoud and Ehab and the MEX |
1525A - Potion-making | 1744D - Divisibility by 2n |
1744C - Traffic Light | 1744A - Number Replacement |
1744B - Even-Odd Increments | 637B - Chat Order |
546C - Soldier and Cards | 18D - Seller Bob |
842B - Gleb And Pizza | 1746D - Paths on the Tree |
1651E - Sum of Matchings | 19A - World Football Cup |
630P - Area of a Star | 1030C - Vasya and Golden Ticket |