SIO
  Zadania
  Ranking
  Statystyki
  Rozwiązania
  Wiadomości
  Pytania
  Forum
  Przydatne zasoby
  Dokumenty
  O konkursie

  Wejście

  OI10-3
  BUK2003
  OI10-2
  EUNIS2003
  ACM-Trening5
  ACM-Trening4
  ACM-Trening3
  ACM-Trening2
  AP-ACM2
  AP-ACM
  OI10-1
  AP2002
  OI9-3
  PA 2002
  Mini PA
  OI9-2
  OI9-1
  PA 2001

wydruk

Plus - minus

Termin oddawania rozwiązań: 09.05.2003 23:59

Napisz program obliczający wartość prostych wyrażeń arytmetycznych składających się ze cyfr, operacji + i -, oraz nawiasów. Program powinien używać parsera SLR, LR lub LALR.

Wejście

Na wejściu podane jest jedno wyrażenie arytmetyczne, w następującym formacie:
Wyrazenie := WS W WS
W := [0-9] | W WS + WS W | W WS - WS W | ( WS W WS )
WS := [ \t\n]*
Można założyć, że wyrażenie jest poprawne. Wartość wyrażenia (jak i wszystkie wyniki pośrednie) mieści się w zakresie typu longint. Liczba cyfr w danych wejściowych nie przekracza 100000.

Wyjście

Na wyjściu należy zapisać jedną liczbę całkowitą będącą wartością wyrażenia

Przykład 1

Dla danych:
1+1- 1 -(
  2+3-2  )
 -2
poprawną odpowiedzią jest:
-4

Przykład 2

Dla danych:
1-1-1-1-1-1-1+5
poprawną odpowiedzią jest:
0

Uwaga

Zadanie można rozwiązywać tylko w C/C++/Pascalu.
CEPC 2002, 2003-07-15 18:17:47