Top.Mail.Ru
Ответы

Помогите с олимпиадой по информатике, пожалуйста.

Пожалуйста, предоставьте код на любом языке.


Нарезка сосисок
На олимпиаду приехало m участников. Организаторы приготовили n сосисок на обед и их необходимо нарезать на кусочки так, чтобы суммарная длина кусочков, которые достанутся каждому участнику, была максимальна и одинакова. Одним разрезом можно разрезать только одну сосиску.

Определите минимальное суммарное количество разрезов, которые необходимо сделать.

Формат входных данных
В единственной строке входных данных вводятся два числа n, m (1 ≤ n, m ≤ 100).

Формат результата
Выведите минимальное суммарное количество разрезов.

Примеры
Входные данные
3 4
Результат работы
3
Входные данные
4 8
Результат работы
4
Входные данные
8 2
Результат работы
0

Примечания
В первом примере нужно можно отрезать от каждой сосиски 3/4 её длины и дать эти кусочки первым трём участникам. Оставшийся участник получит 3 четвертинки сосиски.

Во втором примере достаточно разрезать каждую сосиску пополам и каждый участник получит по половине сосиски.

В третьем примере разрезы не нужны, участники получат по четыре сосиски.

По дате
По рейтингу
Аватар пользователя
Мастер

n, m = input().split()
n = int(n)
m = int(m)
s = n/m
if s > 0.5:
print(n%m)
elif s > 1 and type(s) == float:
print(n%m-1)
elif s == 0.5:
print(n)
elif s == int(s):
print(0)
else: print(None)



Это все что смогли решить. Мы вообще так то только первый раз участвуем. При тестах показало 60 баллов. Удачи.