Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста решить задачу (составить программу) на языке Python. Заранее благодарю!

Makar Ученик (216), на голосовании 1 неделю назад
Деление шоколадки. У Маши есть прямоугольная шоколадка, состоящая из m×nm×n квадратных долек. Маша хочет разделить эту шоколадку между своими друзьями, разломив шоколадку по линиям на k кусочков, то есть каждому другу достанется прямоугольный кусочек шоколадки. У Юры сегодня день рождения, поэтому Маша хочет разделить шоколадку так, чтобы Юре достался самый большой кусок (содержащий как можно больше долек). Определите число долек в этом куске.

Формат входных данных
Программа получает на вход три натуральных числа, каждое в отдельной строке: m, n и k. Все числа целые положительные, при этом mm и nn не превосходят 10^6, а k≤mn. Обратите внимание на то, что значение mnmn, а значит, и значение k в этой задаче может превышать возможное значение 32‑битной целочисленной переменной, поэтому необходимо использовать 64‑битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).

Формат выходных данных
Программа должна вывести одно целое число максимально возможное количество долек в том прямоугольном куске, который получит Юра.

Система оценки
Решения, правильно работающие при m≤1000 и n≤1000, будут оцениваться в 60 баллов.

Замечание
В примере из условия нужно разделить шоколадку 4×5 на 4 кусочка. Самый большой кусочек будет состоять из 16 долек, как показано на картинке.
Ввод
4
5
4
Вывод
16
Голосование за лучший ответ
paulcucumber Знаток (371) 1 месяц назад
 n = int(input()) 
m = int(input())
k = int(input())
n, m = (reversed(sorted([n, m])))
i = 1
j = max([j for j in range(1, m + 1) if i * j + k <= n * m + 1])
ans = i * j
flag = True
while i + j:
if flag:
i += 1
flag = False
else:
j -= 1
if i > n or j <= 0:
break
if i * j + k <= n * m + 1:
flag = True
if ans + k < i * j + k:
ans = i * j
print(ans)
Антон СкоковУченик (128) 1 месяц назад
можешь мне пожалуйста помочь?
MakarУченик (216) 1 месяц назад
Огромное спасибо!!!!!!!!!!!!!!!!!!!!!
Михаил ЕвгеньевичУченик (113) 1 месяц назад
можешь помочь с решение задачи?
Антон рвп Ученик (120) 1 месяц назад
Продам ответы на 490 баллов

50 руб.

тг. sneja707
Похожие вопросы