Решение 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

Your email address will not be published. Required fields are marked *

*