Submeter | Todas submissőes | Melhores | Voltar |
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: | 1s |
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? |