思路
枚举第一次选择的所有可能的情况,当第一次的情况确定后,就能获得这种情况能喝到的饮料数,取最大值即可
代码

#include<bits/stdc++.h>
using namespace std;
int t, n, a, b;
inline int pan(int x, int y)
{
    int ans = n;
    //  b, a
    int u, v;
    while (x >= a || y >= b) {
        u = x / a;//换b
        v = y / b;//换a
        ans += u + v;
        x = x % a + v;
        y = y % b + u;
    }
    return ans;
}
void solve()
{
    cin >> n >> a >> b;
    int ans = 0;
    for (int i = 0; i <= n; ++i) {//第一次选择的情况
        //取最大值
        ans = max(ans, pan(i, n - i));
    }
    cout << ans << endl;
}
int main()
{

    cin >> t;
    while (t--) solve();
    return 0;
}