Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

CALCU11 - Calculadora

 

Solicitando Boas Contas (SBC) é uma organização de inspeção de calculadoras. Todos os fabricantes procuram ter o selo de qualidade da SBC, que faz com que os clientes comprem o produto sem preocupação com contas erradas.

Você está encarregado de testar máquinas que fazem apenas operações de multiplicação e divisão. Além disso, o termo a ser digitado em cada operação (que dividirá ou multiplicará o número atualmente exibido no visor) só pode conter um único dígito.

A calculadora exibe o número 1 quando ligada. Depois disso, o usuário pode digitar um número com um único dígito e escolher se esse número deve multiplicar ou dividir o número exibido anteriormente; o resultado da operação escolhida é então exibido na calculadora. Pode-se repetir esse processo indefinidamente.

Apesar de só podermos entrar com números inteiros de um dígito, o visor da calculadora permite exibir números com múltiplos dígitos e até mesmo números fracionários.

Dada uma sequência de operações que foram realizadas nessa calculadora logo depois de ligada, sua tarefa é conferir o resultado exibido.

Entrada

A primeira e única linha da entrada contém um inteiro N. Cada uma das próximas N linhas contém um dígito e um caractere '*' ou '/', que representam uma operação realizada na calculadora.

Saída

Seu programa deve imprimir uma única linha contendo o resultado que deve ser exibido pela calculadora ao final das operações.

Restrições

  • 1 ≤ N ≤ 100 000.
  • Os números informados são inteiros entre 1 e 9.
  • O resultado final da conta é um número inteiro entre 1 e 230.

Exemplos

Entrada
3
2 *
1 *
3 *

Saída
6

O usuário deseja calcular o resultado da seguinte expressão: 1 × 2 × 1 × 3. Note que a primeira ocorrência do número 1 vem do fato da calculadora mostrar inicialmente 1 ao invés de 0.

Entrada
3
2 /
3 /
6 *

Saída
1

Neste exemplo, o usuário deseja calcular o resultado da seguinte expressão: ((1/2)/3) × 6.

Entrada
11
9 *
9 *
9 *
9 *
9 *
9 *
9 *
9 *
9 *
9 *
9 /

Saída
387420489

Adicionado por:Wanderley Guimarăes
Data:2012-03-10
Tempo limite:0.121s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL
Origem:OBI 2011 - fase 2 nível 1

hide comments
2015-07-05 17:05:37 Elsio [UFABC]
Minha estratégia foi criar um histograma que conta a ocorrência de cada dígito e decrementa em caso de divisão. Isso 'corta' dígitos iguais no numerador e no denominador.

Sobre tipos de variáveis, denominador e numerador precisam ser double e o resultado precisa ser Uint, senão dá resposta errada.

Eu recebi muitas vezes o erro de divisão por zero sendo que era impossível dar zero no denominador... graças a esse problema agora eu sei :)
2013-03-17 17:56:02 Deryk Sedlak [UEL]
Use a variável como double pois assim ela năo estoura na divisăo e nem na multiplicaçăo.
2013-03-17 17:55:11 Ricardo Martins [UEL]
alguem tem dica??
2013-02-20 03:55:52 marcus [FACENS]
alguem possui mais casos de testes?
e o que ele quer dizer com "numeros inteiros de um digito"??
2012-08-22 20:16:49 Null Pointer Exception
O resultado final é um numero inteiro entre 1 e 2^30, mas no processo pode ser que esse valor seja superior. Impressăo com double passou.
2012-06-16 05:24:03 Renato R. de Resende [UFU]
O resultado deve ser mostrado como int mesmo.
2012-04-29 17:58:35 William Lopes [UFV-CF]
A forma de apresentar o resultado será como int.
2012-04-04 12:07:51 Ana Cláudia de Moura Laurentino
o um inicial tem que vim antes ou depois do n ?
2012-03-30 14:39:02 Thiago Otero de Sousa
E aí, como ficou a questăo? O resultado tem q ser float ou int?
2012-03-25 17:01:05 Kelvin Azevedo Santos [FMUSP]
alguem sabe o que é um erro interno que estava acontecendo?
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.