Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2444

Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2444

Volume da TV

 

Por OBI - Olimpíada Brasileira de Informática 2013 BR Brazil

Timelimit: 1

Bruno é um menino que gosta muito de ver televisão. No entanto ele se depara com um problema muito chato. Sempre que começa um novo programa no canal preferido dele, a TV Nlogônia, acontece de o volume do som deste programa estar diferente do anterior, às vezes com volume menor, outras vezes com volume maior. Quando está com volume menor, ele aumenta o volume pressionando uma quantidade de vezes seguidas o botão de aumentar para o volume ficar ideal; a mesma coisa acontece quando está um volume maior, e ele diminui o volume pressionando alguma quantidade de vezes seguidas o botão de diminuir o volume para ficar com o volume que ele goste no momento.

O aparelho de TV dele tem umas peculiaridades: ele possui volume mínimo, com valor 0 (também chamado de mudo), e volume máximo, com valor 100. A TV nunca ultrapassa os volumes máximo e mínimo. Por exemplo, se o volume já estiver no máximo e ele pressionar o botão de aumentar o som, o volume não se altera. Da mesma forma, se o volume estiver no valor mínimo e ele pressionar o botão de diminuir o som, o volume não se altera.

Agora Bruno quer sua ajuda: ele lembra qual era o volume inicial da TV, e quantas vezes ele pressionou cada botão. Mas, como foram várias mudanças de volume, ele não sabe qual é o volume atual da TV. Por isso, pediu que você o ajude a calcular qual é o volume atual, dados o volume inicial e a lista de trocas de volume que ele realizou.

 

Entrada

 

A primeira linha da entrada contém dois números inteiros V (0 ≤ V ≤ 100) e T (0 ≤ T ≤ 1000), que indicam, respectivamente, o volume inicial e o número de trocas de volume.

A segunda linha contém T números inteiros Ai (−100 ≤ Ai ≤ 100) que mostram as modificações de volume realizadas, na ordem em que estas modificações foram feitas. O primeiro número indica a primeira modificação de volume, o segundo número indica a segunda modificação, e assim por diante. Para cada modificação, um número maior do que zero significa quantas vezes Bruno pressionou o botão de aumentar o som; um número menor do que zero significa quantas vezes ele pressionou o botão de diminuir o som. Ou seja, se o número é igual a 5, significa que nessa modificação ele pressionou cinco vezes o botão de aumentar o som; se o número é igual a −3, significa que nessa modificação ele pressionou o botão de diminuir o som três vezes.

 

Saída

 

Seu programa deve imprimir apenas uma linha, contendo apenas um inteiro F, que indica qual o volume atual da TV após as mudanças de volume.

 

 

 

Exemplos de Entrada Exemplos de Saída

50 4

11 20 -15 -13

53

 

Code Examples

#1 Code Example with C Programming

Code - C Programming


#include <stdio.h>

int main (void)
{

	short volInicial, qtsTrocas, volume;
	unsigned short i;

	scanf("%hd %hd", &volInicial, &qtsTrocas);

	for (i = 0; i  <  qtsTrocas; i++)
	{

		scanf("%hd", &volume);

		if (volInicial + volume > 100)
			volInicial = 100;
		else if (volInicial + volume > 0)
			volInicial += volume;
		else
			volInicial = 0;

	}

	printf("%hd\n", volInicial);

}
Copy The Code & Try With Live Editor

Input

x
+
cmd
50 4
11 20 -15 -13

Output

x
+
cmd
53

#2 Code Example with C++ Programming

Code - C++ Programming


#include <algorithm>
#include <cstdio>
using namespace std;
int main() {
    int v, t;
    scanf("%d %d", &v, &t);
    while (t--) {
        int a;
        scanf("%d", &a);
        v = min(100, max(v + a, 0));
    }
    printf("%d\n", v);
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
50 4
11 20 -15 -13

Output

x
+
cmd
53
Advertisements

Demonstration


Previous
#2443 Beecrowd Online Judge Solution 2443 Soma de Frações Solution in C, C++, Java, Js and Python
Next
#2445 Beecrowd Online Judge Solution 2445 Polígono Solution in C, C++, Java, Js and Python