Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2401

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

Calculadora

 

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

Timelimit: 1

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.

No primeiro caso de teste abaixo, 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.

No segundo caso de teste abaixo, o usuário deseja calcular o resultado da seguinte expressão: ((1/2)/3) × 6.

 

Entrada

 

A primeira e única linha da entrada contém um inteiro N (1 ≤ N ≤ 100 000). 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.

 

 

 

Exemplos de Entrada Exemplos de Saída

3

2 *

1 *

3 *

6

 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming


#include <cstdio>
int vetor[10];
int main() {
    int n, resposta = 1;
    scanf("%d", &n);
    while (n--) {
        int x;
        char op;
        scanf("%d %c", &x, &op);
        if (op == '*')
            vetor[x]++;
        else
            vetor[x]--;
    }
    vetor[3] += 2 * vetor[9];
    vetor[2] += 2 * vetor[4];
    vetor[2] += 3 * vetor[8];
    vetor[2] += vetor[6];
    vetor[3] += vetor[6];
    while (vetor[2]--) resposta *= 2;
    while (vetor[3]--) resposta *= 3;
    while (vetor[5]--) resposta *= 5;
    while (vetor[7]--) resposta *= 7;
    printf("%d\n", resposta);
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
3
2 *
1 *
3 *

Output

x
+
cmd
6
Advertisements

Demonstration


Previous
#2400 Beecrowd Online Judge Solution 2400 Balé Solution in C, C++, Java, Js and Python
Next
#2402 Beecrowd Online Judge Solution 2402 Selos Solution in C, C++, Java, Js and Python