Может мои размышления не самые верные, может "правильный" способ решения вообще другой, но:
У тебя есть выражение, которое истинно тогда, когда верна хотя бы одна из двух частей.
смотрим на левую часть.
2x+3y>30
. У нас есть возможные комбинации
x и
y при которых это выражение будет ложным. Нам эти комбинации и нужны. Главная задача найти из этих двух комбинаций такие "граничные" комбинации, при которых любое увеличение
x или
y сделает выражение
2x+3y>30
истинным. Для этого пройдемся по
x в диапазоне от 0 до 15 и по
y в диапазоне от 0 до 10 и подставим в выражение
2x+3y<=30
И среди всех этих комбинаций нужно найти такую, которая даст максимальную сумму.
a = 0
for x in range(16): # от 0 до 15
for y in range(11): # от 0 до 10
if 2*(x)+3*(y)<=30:
if a<x+y:
a = x+y
print(a)