Conta de Água é o problema Ad-Hoc resolvido nesse post! Confira!
Plataforma: URI (BEECROWD)
Problema: 2369
Enunciado:
A empresa local de abastecimento de água, a Saneamento Básico da Cidade (SBC), está promovendo uma campanha de conservação de água, distribuindo cartilhas e promovendo ações demonstrando a importância da água para a vida e para o meio ambiente.
Para incentivar mais ainda a economia de água, a SBC alterou os preços de seu fornecimento de forma que, proporcionalmente, aqueles clientes que consumirem menos água paguem menos pelo metro cúbico. Todo cliente paga mensalmente uma assinatura de R$ 7, que inclui uma franquia de 10 m³ de água. Isto é, para qualquer consumo entre 0 e 10 m³ , o consumidor paga a mesma quantia de R$ 7 reais (note que o valor da assinatura deve ser pago mesmo que o consumidor não tenha consumido água). Acima de 10 m³ cada metro cúbico subsequente tem um valor diferente, dependendo da faixa de consumo. A SBC cobra apenas por quantidades inteiras de metros cúbicos consumidos. A tabela abaixo (disponível na especificação original do problema) especifica o preço por metro cúbico para cada faixa de consumo:
Assim, por exemplo, se o consumo foi de 120 m³ , o valor da conta é:
- 7 reais da assinatura básica;
- 20 reais pelo consumo no intervalo 11 - 30 m³;
- 140 reais pelo consumo no intervalo 31 - 100 m³;
- 100 reais pelo consumo no intervalo 101 - 120 m³.
Logo o valor total da conta de água é R$ 267.
Escreva um programa que, dado o consumo de uma residência em m3, calcula o valor da conta de água daquela residência.
Linguagens: C e C++
Solução:
Código em C:
#include <stdio.h> int main() { int n, v, total = 7; scanf("%d", &n); if (n > 100) { v = n - 100; total += v * 5; n -= v; } if (n > 30) { v = n - 30; total += v * 2; n -= v; } if (n > 10) total += n - 10; printf("%d\n", total); return 0; }
Código em C++:
#include <iostream> using namespace std; int main() { int n, v, total = 7; cin >> n; if (n > 100) { v = n - 100; total += v * 5; n -= v; } if (n > 30) { v = n - 30; total += v * 2; n -= v; } if (n > 10) total += n - 10; cout << total << endl; return 0; }