Есть две копировальных машины, одна делает копию документа за x минут, а вторая — за y минут. Требуется получить n копий некоторого документа. За какое минимальное время это возможно сделать? Изначально документ существует в одном экземпляре. Формат ввода В единственной строке даны три числа, разделенные пробелом: N, x, y (1 ≤ x, y ≤ 10, 1 ≤ N ≤ 2*108). Формат вывода Выведите одно число — минимальное время, за которое можно получить n копий документа (в минутах).
Для решения этой задачи можно воспользоваться следующим алгоритмом:
Найти минимальное время, за которое можно сделать одну копию документа с помощью первой или второй копировальной машины.
Рассмотреть все возможные комбинации использования обеих копировальных машин для получения n копий документа.
Выбрать комбинацию, которая займет минимальное время.
Например, если x = 3 минуты, y = 5 минут, и нам нужно получить 6 копий документа, то минимальное время будет 9 минут (3 минуты на первой машине и 6 минут на второй).
Реализация данного алгоритма будет иметь сложность O(1), так как нам нужно лишь выполнить небольшое количество операций.
Пример кода на Python:
N, x, y = map(int, input().split()) time1 = min(x, y) time2 = max(x, y) if N == 1: print(time1) else: min_time = min(N * time1, (N // 2) * time2 + (N % 2) * time1) print(min_time)
Для решения этой задачи можно воспользоваться следующим алгоритмом:
Найти минимальное время, за которое можно сделать одну копию документа с помощью первой или второй копировальной машины.
Рассмотреть все возможные комбинации использования обеих копировальных машин для получения n копий документа.
Выбрать комбинацию, которая займет минимальное время.
Например, если x = 3 минуты, y = 5 минут, и нам нужно получить 6 копий документа, то минимальное время будет 9 минут (3 минуты на первой машине и 6 минут на второй).
Реализация данного алгоритма будет иметь сложность O(1), так как нам нужно лишь выполнить небольшое количество операций.
Пример кода на Python:
N, x, y = map(int, input().split())time1 = min(x, y)
time2 = max(x, y)
if N == 1:
print(time1)
else:
min_time = min(N * time1, (N // 2) * time2 + (N % 2) * time1)
print(min_time)
Пример работы программы:
Ввод:6 3 5
Вывод:
9