package main
import (
"fmt"
)
func main() {
// 1. 全部用 int64,彻底断绝 10^18 溢出的后路
var a, b, x int64
fmt.Scan(&a, &b, &x)
// 方案 1:纯单买 (x 只全买 a)
ans1 := x * a
// 方案 2:尽量买套餐,剩下零头补单买 (你之前的逻辑)
ans2 := (x/3)*b + (x%3)*a
// 方案 3:全都买套餐,哪怕买多了也行 (解决 53 46 97 那个用例的关键)
// (x+2)/3 是向上取整,确保买到的总数 >= x
ans3 := ((x + 2) / 3) * b
// 2. 选出这三个方案中的最小值
minAns := ans1
if ans2 < minAns {
minAns = ans2
}
if ans3 < minAns {
minAns = ans3
}
// 3. 打印最终结果,编译器这回没话说了
fmt.Print(minAns)
}



京公网安备 11010502036488号