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)
}