Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 2369. Mostrar todas as postagens
Mostrando postagens com marcador 2369. Mostrar todas as postagens

sexta-feira, 5 de março de 2021

URI (BEECROWD) - 2369 - Conta de Água - Ad-Hoc - C e C++

Conta de Água é o problema Ad-Hoc resolvido nesse post! Confira!

Plataforma: URI (BEECROWD)

Problema2369

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;
}

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas