Олимпиада по информатике нужен код на питоне срочно!!! - Общение Python мододелов

Вопрос Олимпиада по информатике нужен код на питоне срочно!!!

Регистрация
7 Окт 2013
Сообщения
87
Репутация
0
Спасибо
1
Монет
0
У Маши есть прямоугольная шоколадка, состоящая из

m×n

квадратных долек. Маша хочет разделить эту шоколадку между своими друзьями, разломив шоколадку по линиям на

k

кусочков, то есть каждому другу достанется прямоугольный кусочек шоколадки.



У Юры сегодня день рождения, поэтому Маша хочет разделить шоколадку так, чтобы Юре достался самый большой кусок (содержащий как можно больше долек). Определите число долек в этом куске.Входные данные

Программа получает на вход три натуральных числа, каждое в отдельной строке:

m

,

n

и

k

. Все числа — целые положительные, при этом

m

и

n

не превосходят

10

6



, а

k≤mn

.



Обратите внимание на то, что значение

mn

, а, значит, и значение

k

в этой задаче может превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).



Выходные данные

Программа должна вывести одно целое число — максимально возможное количество долек в том прямоугольном куске, который получит Юра.
 
Регистрация
11 Окт 2013
Сообщения
85
Репутация
-7
Спасибо
0
Монет
0
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)
 
Регистрация
23 Окт 2013
Сообщения
84
Репутация
1
Спасибо
0
Монет
0
продам ответы на эту олимпиаду, цена:50р
отзывы есть!
тг:mad:Xyeplet12
 
Регистрация
4 Дек 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
m = int(input())
n = int(input())
k = int(input())

# Находим максимальное число долек, которое может занимать один кусок
max_deli = m * n // k

# Случай, когда можно разделить шоколадку на k равных кусков
if (m * n) % k == 0:
print(max_deli)
else:
# Ищем наибольший прямоугольный кусок
for i in range(max_deli, 0, -1):
if (m * n) % i == 0 and (m * n) // i >= k:
print(i)
break
 
Регистрация
6 Авг 2013
Сообщения
87
Репутация
1
Спасибо
2
Монет
0
В этом канале слили ответы
315517135_f4f4be6db2e508c82b13db35c0021627_800.jpg

 
Сверху Снизу