Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2434

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

Saldo do Vovô

 

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

Timelimit: 1

Vovô João tem uma banca de jornais; ele tem muitos clientes, e diariamente recebe muito dinheiro, mas também faz muitos pagamentos para manter o seu estoque de jornais e revistas. Todo dia ele vai ao banco realizar um depósito ou uma retirada de dinheiro. Em alguns dias, o saldo de sua conta no banco fica negativo, mas Vovô João tem um acordo com o banco que garante que ele somente é cobrado se o saldo for menor do que um valor pré-estabelecido.

Dada a movimentação diária da conta do banco do Vovô João, você deve escrever um programa que calcule o menor saldo da conta, no período dado.

 

Entrada

 

A primeira linha da entrada contém dois números inteiros N (1 ≤ N ≤ 30) e S (−103S ≤ 103) que indicam respectivamente o número de dias do período de interesse e o saldo da conta no início do período. Cada uma das N linhas seguintes contém um número inteiro indicando a movimentação de um dia (−103cada movimentação ≤ 103), (valor positivo no caso de depósito, valor negativo no caso de retirada). A movimentação é dada para um período de N dias consecutivos: a primeira das N linhas corresponde ao primeiro dia do período de interesse, a segunda linha corresponde ao segundo dia, e assim por diante.

 

Saída

 

Seu programa deve imprimir uma única linha, contendo um único número inteiro, o menor valor de saldo da conta no período dado.

 

 

 

Exemplos de Entrada Exemplos de Saída

3 1000

100

-800

50

300

 

Code Examples

#1 Code Example with C Programming

Code - C Programming


#include <stdio.h>
#include <string.h>

int main (void)
{

	unsigned short numDias, i;
	int saldoInicial, menorSaldo, movimentacao;

	scanf("%hu %d", &numDias, &saldoInicial);

	menorSaldo = saldoInicial;
	for (i = 0; i  <  numDias; i++)
	{

		scanf("%d", &movimentacao);
		saldoInicial += movimentacao;

		if (saldoInicial  <  menorSaldo)
			menorSaldo = saldoInicial;

	}

	printf("%d\n", menorSaldo);

}
Copy The Code & Try With Live Editor

Input

x
+
cmd
3 1000
100
-800
50

Output

x
+
cmd
300

#2 Code Example with C++ Programming

Code - C++ Programming


#include <cstdio>
int min(int x, int y) {
    if (x  <  y) return x;
    return y;
}
int main() {
    int n, atual, menor;
    scanf("%d %d", &n, &atual);
    menor = atual;
    while (n--) {
        int davez;
        scanf("%d", &davez);
        atual += davez;
        menor = min(atual, menor);
    }
    printf("%d\n", menor);
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
3 1000
100
-800
50

Output

x
+
cmd
300

#3 Code Example with Javascript Programming

Code - Javascript Programming


const { readFileSync } = require("fs")
const [days, openingBalance, ...transations] = readFileSync("/dev/stdin", "utf8").split(/\s/)

function getMinimunSaleFromHistory(/** @type {number[]} */[...values], initialValue = 0) {
	for (var index = 0, sale = initialValue, minSaleValueOnHistory = initialValue; index  <  values.length; index++) {
		sale += values[index]
		minSaleValueOnHistory = sale < minSaleValueOnHistory ? sale : minSaleValueOnHistory
	}

	return minSaleValueOnHistory
}

function main() {
	const transationsValues = transations.slice(0, +days).map(num => Number.parseInt(num, 10))
	const minimunSaleValueOnHistory = getMinimunSaleFromHistory(transationsValues, +openingBalance)

	console.log(minimunSaleValueOnHistory)
}

main()
Copy The Code & Try With Live Editor
Advertisements

Demonstration


Previous
#2433 Beecrowd Online Judge Solution 2433 Vende-se Solution in C, C++, Java, Js and Python
Next
#2435 Beecrowd Online Judge Solution 2435 Corrida Solution in C, C++, Java, Js and Python