사칙연산을 할 수 있다

시간 제한2초메모리 제한128 MB

문제

사칙연산 식이 주어진다. 식을 계산할 수 있으면 그 값을 출력하고, 올바른 식이 아니거나 0으로 나누는 과정이 생기면 계산할 수 없는 것으로 판단한다.

이 문제에서 계산할 은 다음 문법으로 정의되는 <expr>이다. 이 문법에는 단항 +나 단항 -가 없다.

<digit> = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
<number> = <digit> | <number> <digit>
<expr> = <number> | <expr> '+' <expr> | <expr> '-' <expr> | <expr> '*' <expr> | <expr> '/' <expr> | '(' <expr> ')'

입력

첫째 줄에 계산해야 하는 식이 주어진다. 식은 ()*/+-0123456789에 포함된 문자로만 이루어져 있으며, 길이는 1,000자 이하이다.

출력

식의 계산 결과를 출력한다. 식이 올바르지 않아 계산할 수 없으면 ROCK을 출력한다.

  • 식은 일반적인 연산 우선순위에 따라 계산한다. 괄호 안의 식을 먼저 계산하고, 그다음 곱셈과 나눗셈, 마지막으로 덧셈과 뺄셈을 계산한다.
  • 같은 우선순위의 연산자가 여러 개 있으면 왼쪽에서 오른쪽 순서로 계산한다.
  • 주어진 식이 위 문법을 만족한다면, 나눗셈이 등장할 때 그 결과는 항상 정수로 나누어떨어지거나 제수가 0이다. 제수가 0인 나눗셈이 등장하면 식이 올바르지 않은 것으로 간주한다.