@neulwert

Как распределить три числа(a,b,c) чтобы k делилось на каждое из них поочередно минимальное количество раз?

Экзаменационная задача: Есть сервер и три программы(a,b,c) с определенным количеством файлов, которые туда нужно отправить. Отправить все сразу не получится, сервер принимает только "k" файлов за раз, можно отправлять по частям. Файлы программы "b" можно отправить с любыми другими, а вот файлы "a" и "c" смешивать нельзя. Как решить задачу, чтобы на сервер отправлять файлы пришлось минимальное количество раз?

На первой строке дается три переменные(a,b,c)
На второй вместимость сообщения на сервер(k)
#скопипастил из своего кода
a, b, c = map(int, input().split())
k = int(input())

На выходе программа должна показать минимальное количество возможных отправок на сервер

Например:
Входные данные:
4 5 2
3
Выходные данные:
4


Пытался сам решить, запутался в условиях, разностях и делениях как с остатком так и без. Чувствую, что можно написать коротко, но у меня получается длинная фиговина, которая к тому же иногда приводит к зацикливанию или неправильному результату. Помогите решить, очень нужно
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 1
Wispik
@Wispik
как вариант, считаем все возможные исходы и выбираем наименьшее значение
from math import ceil

var1 = ceil((a + b) / k) + ceil(c / k)
var2 = ceil(a / k) + ceil((b + c) / k)

print(min(var1, var2))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы