Хусейн очень любит булочки,
которые продаются в АДА университете в здании С. Известно, что
·
можно купить одну булочку за a гяпиков;
·
можно купить три булочки за b гяпиков;
Хусейн хочет приобрести n булочек.
Какое наименьшее количество гяпиков ему следует потратить?
Вход. Три натуральных числа a, b и
n, каждое из которых не больше 109.
Выход. Выведите наименьшее количество
гяпиков, которое следует потратить Хусейну для покупки n булочек.
Пример
входа |
Пример
выхода |
2 5 10 |
17 |
условный оператор
Если булочки покупать по одной,
то придется заплатить x = a
* n гяпиков.
Если (n / 3) * 3 булочки покупать по 3 за b гяпиков,
то заплатим (n / 3) * b гяпиков. При этом еще останется n % 3 булочек, которые следует
покупать по одной, каждую за a гяпиков. В этом случае суммарно заплатим y = (n / 3) * b + (n % 3) * a гяпиков.
Поскольку
следует минимизировать потраченное количество гяпиков, то ответом
будет значение min(x, y).
Реализация алгоритма
Читаем входные данные.
scanf("%d %d %d", &a, &b, &n);
Вычисляем res = min(x, y), где
·
x = a * n, стоимость булочек если каждую
покупать отдельно;
·
y = (n / 3) * b + (n % 3) * a, стоимость булочек если наибольшее их
количество покупать по 3;
x = a * n;
y = (n / 3) * b + (n
% 3) * a;
res = x;
if (y < res) res = y;
Выводим ответ.
printf("%d\n", res);
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int a = con.nextInt();
int b = con.nextInt();
int n = con.nextInt();
int x = a * n;
int y = (n / 3) *
b + (n % 3) * a;
int res = x;
if (y < res) res = y;
System.out.println(res);
con.close();
}
}
Python реализация
a, b, n = map(int, input().split())
x = a * n
y = (n // 3) * b +
(n % 3) * a
print(min(x,y))