题解:
这个题想法很简单。
肯定优先选性价比最高的,然后小部分改动。(由于我懒得判断,直接都写了...)考虑如果先选2更优,那么最多可能选1个3,因为2和3的最小公倍数是6,如果选了2个3不如选3个2。再考虑先选3更优,那么可能会选择1个2或者2个2,如果选择3个2不如选择2个3更优。所以从这5种情况里找最优解就好了。

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long 

int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
        ll n,a,b;
        scanf("%lld%lld%lld",&n,&a,&b);
        ll ans=1e18;
        ans=min(ans,(n+1)/2*a);    //全a
        if(n>=3) ans=min(ans,b+(n-3+1)/2*a);    //a+1b
        ans=min(ans,(n+2)/3*b);    //全b
        if(n>=2) ans=min(ans,a+(n-2+2)/3*b);    //b+1a
        if(n>=4) ans=min(ans,2*a+(n-4+2)/3*b);    //b+2a
        printf("%lld\n",ans);
    }
    return 0;
}