IMHO в вашем случае проще решить простым перебором всех вариантов.
#!/usr/bin/env python
rack_s=0 #72
rack_m=0 #84
rack_b=0 #90
min_b=0
min_m=0
min_s=0
empty=1000
for blocks in range(70,100):
empty=blocks
for rack_b in range(0,100):
for rack_m in range(0,100):
for rack_s in range (0,100):
space=rack_s * 72 + rack_m * 84 + rack_b * 90
if space >= blocks:
if empty > (space - blocks):
empty=space - blocks
min_b=rack_b
min_m=rack_m
min_s=rack_s
break
print ("Blocks:", blocks, " Empty blocks :",empty, " Racks: Big, Medium, Small:", min_b, min_m, min_s)
Табличку сохранить и пользоваться готовым.