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.|

CALCULA - Calculando

A disseminação dos computadores se deve principalmente à capacidade de eles se comportarem como outras máquinas, vindo a substituir muitas destas. Esta flexibilidade é possível porque podemos alterar a funcionalidade de um computador, de modo que ele opere da forma que desejarmos: essa é a base do que chamamos programação.

Tarefa

Sua tarefa é escrever um programa que faça com que o computador opere como uma calculadora simples. O seu programa deve ler expressões aritméticas e produzir como saída o valor dessas expressões, como uma calculadora faria. O programa deve implementar apenas um subconjunto reduzido das operações disponíveis em uma calculadora: somas e subtrações.

Entrada

A entrada é composta de vários conjuntos de testes. A primeira linha de um conjunto de testes contém um número inteiro m (1 ≤ m ≤ 100), indicando o número de operandos da expressão a ser avaliada. A segunda linha de um conjunto de testes contém a expressão aritmética a ser avaliada, no seguinte formato:

X1 s1 X2 s2 ... Xm-1 sm-1 Xm

onde

  • Xi, 1 ≤ i ≤ m, é um operando (0 ≤ Xi ≤ 100);
  • sj, 1 ≤ j <m, é um operador, representado pelos símbolos '+’ ou '-’;
  • não há espaços em branco entre operandos e operadores.

O final da entrada é indicado pelo valor m = 0.

Exemplo de Entrada
3
3+7-22
3
5-10-77
10
1+2+3+4+5+6+7+8+9+10
0

Saída

Para cada conjunto de testes da entrada seu programa deve produzir três linhas. A primeira linha deve conter um identificador da expressão, no formato "Teste n", onde n é numerado a partir de 1. Na segunda linha deve aparecer o resultado encontrado pelo seu programa. A terceira linha deve ser deixada em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente.

Exemplo de Saída
Teste 1
-12

Teste 2
-82

Teste 3
55

(esta saída corresponde ao exemplo de entrada acima)

Restrições

1 ≤ m ≤ 100
0 ≤ Xi ≤ 100 para todo 1 ≤ i ≤ m


Adicionado por:Wanderley Guimarăes
Data:2007-02-24
Tempo limite:0.193s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO NODEJS PERL6 PY_NBC SCALA TCL VB.NET
Origem:Olimpiada Brasileira de Informatica 2001

hide comments
2012-12-02 00:08:28 Paulo José Lage Alvarenga
Leandro[FACENS], o teste mais "complexo" seria operar com a maior string. Seria o caso de ter 100 números e somar/subtrair somente 100. Logo, teria 100 números de 3 dígitos, mais 99 operadores, mais o '\0'... talvez seu problema seja o tamanho da string!
2012-09-28 20:17:23 [deleted]
Qual o teste mais ferrado q esse programa pode ter??? ja testei de tudo aki e ta certo mas ta dando resposta errada...pode ter espaço antes de começar ou depois do fim da expressao??
2012-08-17 00:39:09 LOL
Estava tendo problema e descobri que tava esquecendo de pular linha na hora do resultado, ficou assim:
printf ("Teste %d\n%d\n",j,total);
j++;
2012-06-17 23:15:39 [deleted]
Faltou deixar claro se cada x_k é inteiro ou năo.
2012-06-05 14:24:23 Alan Paiva
ou a correçăo esta errando ou tem algo faltando no enunciado, meu programa funciona perfeitamente, como o descrito aqui... e fica dando rsposta errada...
2012-03-14 05:51:12 Soh Eu Que Sei
Năo sei mais o que alterar no meu código. A saída está idęntica ao exibido aqui, além de funcionar corretamente com outros valores.

Deveriam descrever melhor o enunciado dos problemas, pois se há algo errado com meu código, năo é algo que esteja escrito nesse enunciado.
2011-12-13 21:06:22 Douglas Eric [Anhanguera-SO]
Giovanni, coloque um

System.exit(0);

no final do método main
2011-07-21 12:36:52 Giovanni Russo Boscoli
Olá, fiz a soluçăo em C++ e tentei fazer em JAVA, aqui roda perfeitamente, porém quando submeto dá erro em tempo de execuçăo NZEC. Já mudei td q achei q pudesse ser, como int para long, troquei scanner por bufferedreader e etc...
Năo sei mais nenhuma alternativa.
2011-02-27 01:05:52 Jorge Augusto C. dos Reis
É só usar o m para termino da entrada... mas no código da soma... basta somar tudo até chegar ao final da string.
2011-02-27 01:04:42 Jorge Augusto C. dos Reis
Resolvi esse problema mas na verdade nem é necessário considerar o número m!
Basta fazer um código que soma até encontrar o fim da string pronto!
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.