괄호 없는 사칙연산

시간 제한1초메모리 제한512 MB

요약
괄호가 없는 산술식에서 네 연산자의 우선순위를 모두 같게 두고 계산 순서를 바꿀 때 결과의 최솟값과 최댓값을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 재귀, 수학
정답자
아직 제출이 없습니다

문제

사칙연산에서 곱셈과 나눗셈은 덧셈과 뺄셈보다 먼저 계산한다. 덧셈과 뺄셈을 먼저 계산하고 싶을 때는 보통 연산 우선순위가 가장 높은 괄호를 사용하여 연산 순서를 지정한다. 예를 들어, 아래의 식은 연산 순서에 따라 두 가지 다른 결과가 나올 수 있다.

  • (2 + 3) × 4 = 20
  • 2 + (3 × 4) = 14

연산 우선순위가 같은 곱셈과 나눗셈 또는 덧셈과 뺄셈만 있는 식에서는 보통 왼쪽에서 오른쪽 순서로 연산을 한다. 하지만 이런 상황에도 연산 순서에 따라 아래와 같이 두 가지 다른 결과가 나올 수 있다.

  • (6 ÷ 2) × 3 = 9
  • 6 ÷ (2 × 3) = 1

곱셈, 나눗셈, 덧셈, 뺄셈의 4가지 연산자의 연산 우선순위가 모두 동등하다고 할 때, 괄호 없는 식에서 서로 다른 연산 순서의 계산 결과를 구하여라.

입력

첫 번째 줄에는 "K1 O1 K2 O2 K3" 형태로 식이 주어진다. 정수 Ki (1 ≤ Ki ≤ 1,000)는 피연산자를, 문자열 Oi는 곱셈(*), 나눗셈(/), 덧셈(+), 뺄셈(-) 중 한 가지 연산자를 의미한다.

나눗셈 연산은 정수 나눗셈으로 몫만 취하며, 피연산자 중 하나가 음수이면 양수로 바꿔 계산한 결괏값에 음수를 취한다. 또한, 계산 과정에서 0으로 나누어야 하는 식은 주어지지 않는다.

출력

주어진 식에서 서로 다른 연산 순서의 계산 결과가 작은 것을 첫 번째 줄에, 큰 것을 두 번째 줄에 출력한다.

예제4

  1. 예제 1

    입력
    2 + 3 * 4
    
    예상 출력
    14
    20
    
  2. 예제 2

    입력
    6 / 2 * 3
    
    예상 출력
    1
    9
    
  3. 예제 3

    입력
    5 + 10 + 10
    
    예상 출력
    25
    25
    
  4. 예제 4

    입력
    7 / 3 - 9
    
    예상 출력
    -7
    -1