Algorithm
Problem Name: 2 AD-HOC - beecrowd | 2369
Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2369
Conta de Água
Por OBI - Olimpíada Brasileira de Informática 2010 Brazil
Timelimit: 1
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 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.
Entrada
A única linha da entrada contém um único inteiro N, indicando o consumo de água da residência, em m³ (0 ≤ N ≤ 10³).
Saída
Seu programa deve imprimir uma única linha, contendo o valor da conta de água daquela residência.
Exemplos de Entrada | Exemplos de Saída |
8 |
7 |
Code Examples
#1 Code Example with C Programming
Code -
C Programming
#include <stdio.h>
int main(void) {
short n, s=7, a=0, b=0, c=0;
scanf("%hd", &n);
if (n-100 > 0) n -= (a = n-100);
if (n-30 > 0) n -= (b = n-30);
if (n-10 > 0) n -= (c = n-10);
printf("%hd\n", a*5 + b*2 + c + 7);
return 0;
}
Copy The Code &
Try With Live Editor
Input
Output
#2 Code Example with C++ Programming
Code -
C++ Programming
#include <cstdio>
int main() {
int a;
scanf("%d", &a);
if (a < = 10)
printf("7\n");
else if (a <= 30)
printf("%d\n", a - 3);
else if (a < = 100)
printf("%d\n", 27 + (a - 30) * 2);
else
printf("%d\n", 167 + (a - 100) * 5);
return 0;
}
Copy The Code &
Try With Live Editor
Input
Output
#3 Code Example with Javascript Programming
Code -
Javascript Programming
const { readFileSync } = require("node:fs")
const [N] = readFileSync("/dev/stdin", "utf8")
.split("\n", 1)
.map(value => Number.parseInt(value, 10))
function calcWaterBillValue(consumption = 0) {
if (consumption <= 10) return 7
else if (10 < consumption && consumption <= 30) return (consumption - 10) * 1 + 7
else if (30 < consumption && consumption <= 100) return (consumption - 30) * 2 + 20 + 7
else if (consumption > 100) return (consumption - 100) * 5 + 140 + 20 + 7
}
console.log(calcWaterBillValue(N))
Copy The Code &
Try With Live Editor
Input
Output
#4 Code Example with Python Programming
Code -
Python Programming
n = int(input())
s = 7
for i in range(1, n+1):
if 11 <= i <= 30: s += 1
elif 31 <= i <= 100: s += 2
elif 101 <= i: s += 5
print(s)
Copy The Code &
Try With Live Editor
Input
Output