11379. Булочки

 

Хусейн очень любит булочки, которые продаются в АДА университете в здании С. Известно, что

·        можно купить одну булочку за 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))