Informatica Online Judge

  Postfix Equation [0548 / 0224]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 11   Total Tried : 27


The Champion of this Problem (C++) : N/A
My Best Submission (C++) : N/A

[]

Background

진형이는 GSHS에서 후위표현식을 배웠다.

후위표현식이란 피연산자 뒤에 연산자를 두는 방식으로 예를 들면 다음과 같다.

a + b * c (중위표현)
a b c * + (후위표현)

중위표현식을 후위로 표현하면 컴퓨터로 계산할 때 매우 편리하다. 그 이유는 연산순서에 맞도록 연산자가 재 배치되기 때문에 우선순위에 관계없이 스택으로 쉽게 계산을 할 수 있기 때문이다.

진형이는 수업에 배운 후위표현식을 이용하여 1차 방정식을 푸는 방법에 대해서 생각했다.

만약 다음과 같은 1차 방정식이 있다고 하자.

3 + x = 4

라는 중위표현식 방정식을 후위표현식으로 바꾸면 다음과 같다.

3 x + = 4 ( 이 경우의 해는 x = 1이다. )

진형이는 후위표현식으로 된 방정식을 풀 수 있는 알고리즘을 개발하려고 한다.

진형이를 도와서 후위표현식으로 된 방정식을 풀 수 있는 프로그램을 작성하시오.

Input

x가 포함된 방정식이 한 줄로 입력된다. (x는 오직하나만 입력되며, 해는 항상 양수이다.)
= 기호 뒤에는 숫자 하나가 입력된다.

단 모든 연산자와 피연산자는 공백으로 구분되며 연산자는 +, -, *, /만 있으며 각 값의 범위는 0이상 21억 이하의 값이다. (나눗셈의 경우 무조건 나누어 떨어지는 값만 들어온다. 즉, 정수나눗셈으로 처리하면 된다.)

계산과정에서 int범위를 초과하지 않으며, = 뒤의 최종 결과값은 음수일 수 있지만 -21억 이상임을 보장한다.

총 문자열의 길이는 5,000,000을 초과하지 않는다.

Output

후위 방정식에서 구한 x값을 출력한다.

IO Example

입력
4 x 9 - / = -2

출력
7

출제 : 김진형 (GSHS 29th)

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]