Решение Python Задача «Шоколадка»
Условие
Шоколадка имеет вид прямоугольника, разделенного на n×m долек. Шоколадку можно один раз разломить по прямой на две части. Определите, можно ли таким образом отломить часть, состоящую ровно из k долек. Программа получает на вход n, m, k и должна вывести YES или NO.
Логика решения
Один прямой разлом по линиям долек может отделить только прямоугольник:
- либо отломили k = n * t (отрезали несколько столбцов/полос по m)
- либо отломили k = m * t (отрезали несколько строк/полос по n)
То есть:
и k должен быть меньше, чем n*m, иначе “отломить кусок” не получится (это будет вся шоколадка)
k должен делиться на n или на m
n = int(input())
m = int(input())
k = int(input())
if k < n * m and (k % n == 0 or k % m == 0):
print("YES")
else:
print("NO")
k < n*m — чтобы не “отломить всё”
k % n == 0 — можно отломить целое число полос шириной по n долек
k % m == 0 — аналогично, но по другой стороне
Leave a Reply