Dúvida em lógica de exercício de Python (Iniciante)

Olá, comecei recentemente meu estudo em Lógica de Programação em Python. Tenho uma pequena base em C. Me deparei com um exercício na internet no qual diz o seguinte:

“Faça um Programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 6 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00 ou em galões de 3,6 litros, que custam R$ 25,00.
Informe ao usuário as quantidades de tinta a serem compradas e os respectivos preços em 3 situações:

comprar apenas latas de 18 litros;

comprar apenas galões de 3,6 litros;

misturar latas e galões, de forma que o desperdício de tinta seja menor. Acrescente 10% de folga e sempre arredonde os valores para cima, isto é, considere latas cheias.”

O problema é que eu cheguei no terceiro cenário e não consegui desenvolver o pensamento correto de como deveria fazer para calcular a forma de maior custo x benefício. Alguém poderia dar uma dica e informar se a lógica que eu tô seguindo está correta ?

Código:

metros = float(input("Informe os m²: "))
litros = metros/6
if(metros%108 > 0 and metros%21.6>0): 
latas = metros//108
latas = latas + 1
preçol = latas * 80
galao = metros//21.6
galao = galao + 1
preçog = galao * 25
print("Você vai precisar de: {} latas de 18L e vai gastar {} reais".format(latas,preçol))
else:
latas = metros/108
preçol = latas * 80
galao = metros/21.6
preçog = galao * 25
print("Você vai precisar apenas de {} latas de 18L e vai gastar {} reais".format(latas,preçol))
print("Você vai precisar apenas de {} galao de 3,6L e vai gastar {} reais".format(galao,preçog))