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 BR 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

x
+
cmd
8

Output

x
+
cmd
7

#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

x
+
cmd
8

Output

x
+
cmd
7

#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

x
+
cmd
8

Output

x
+
cmd
7

#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

x
+
cmd
8

Output

x
+
cmd
7
Advertisements

Demonstration


Previous
#2368 Beecrowd Online Judge Solution 2368 Simulador Solution in C, C++, Java, Js and Python
Next
#2371 Beecrowd Online Judge Solution 2371 Naval Battle Solution in C, C++, Java, Js and Python