用dp会爆时间和空间,考虑贪心

先考虑3只3只的买,剩下的再单独买

3只买的最便宜价格不一定就是b元,也可能是3*a元。

这里决策一下,剩下的不够3只,要么考虑一只一只买,买完,要么直接买3只。

极端情况就是:3只的价钱贵的离谱,但1只的价钱很便宜,乘3也抵不过直接买3只的b元,也可能出现1只价格贵的离谱,3只的反而很便宜,最后只剩下一只或两只的时候,直接买3只会比分开买更便宜。

为什么先3只3只的买一定是最优的呢?因为如果你不这样买,你一只一只买,每买3只其实还是等价于直接买3只,只不过我们讨论是按3*a还是b而已

#include <iostream>
using namespace std;
typedef long long ll ;
int main() {
    ll a,b,x;
    cin>>a>>b>>x;
    ll c3=min(b,3*a);//买3只的价钱
    ll c1=a; //只买一只的价钱
    ll ans=x/3 *c3;
    x%=3;
    ans+=min(x*c1,c3);
    cout<<ans;
}
// 64 位输出请用 printf("%lld")