Solução escrita por Malu Azevedo
O problema nos pede para calcular o menor custo possível para obter pelo menos quilos de arroz, tendo à disposição pacotes de 1 kg (ao preço de ) e pacotes de 5 kg (ao preço de ).
Ideia Central
Para encontrar o menor custo, precisamos comparar a eficiência de preço entre os dois tipos de pacotes. Os pacotes de 5 kg são mais vantajosos quando o seu custo por quilo é menor do que o do pacote de 1 kg, o que ocorre se . Caso contrário, se os pacotes de 1 kg forem mais baratos ou equivalentes por quilo (), a melhor estratégia é comprar exclusivamente pacotes de 1 kg.
Quando os pacotes de 5 kg compensam, o número de pacotes necessários pode ser obtido de duas formas eficientes: comprando a quantidade de pacotes de 5 kg arredondada para cima () para garantir a quantidade mínima, ou comprando o maior número inteiro de pacotes de 5 kg abaixo de () e completando o restante exato () com pacotes de 1 kg.
Abordagem Completa
Lemos os valores de , e e aplicamos a lógica condicional direta. Se , a resposta direta é , pois comprar apenas pacotes de 1 kg é mais econômico ou igual. Por outro lado, se , os pacotes de 5 kg são mais baratos por quilo, e calculamos o valor mínimo entre duas opções: comprar (arredondando para cima a divisão de por 5) ou comprar (usando pacotes de 5 kg e preenchendo o resto com pacotes de 1 kg). Como pode atingir valores de até , é necessário utilizar tipos de dados de 64 bits para evitar estouro de capacidade (overflow). A complexidade da solução é , pois envolve apenas operações aritméticas diretas.
