만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

순서 없는 연산자

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

요약
덧셈, 뺄셈, 곱셈과 괄호로 이루어진 식이 주어질 때, 세 연산자의 우선순위를 하나 정해 왼쪽 결합으로 계산한 값이 최대가 되도록 하는 값을 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 완전 탐색, 구현, 수학
정답자
아직 제출이 없습니다

문제

초등학생 이쿠타는 어느 날 할아버지에게 수식이 적힌 종이를 받았다. 할아버지는 수식의 답에 해당하는 금액만큼 용돈을 주는 모양이다. 이쿠타는 아직 덧셈, 뺄셈, 곱셈밖에 배우지 못했기 때문에 수식에도 덧셈, 뺄셈, 곱셈만 쓰여 있다. 보통의 계산에서는 덧셈과 뺄셈보다 곱셈을 먼저 계산해야 하지만, 이쿠타는 연산자 우선순위를 잘 이해하지 못했기 때문에 일단 수식의 계산 결과가 최대가 되도록 편한 우선순위를 정하기로 했다.

+−×+-\times의 세 이항 연산자와 괄호를 포함하는 수식이 주어진다. 세 연산자의 우선순위를 임의로 바꾸어 수식을 최대화했을 때의 계산 결과를 답하라.

단, 다음 사항에 주의하라.

  • 연산자는 항상 왼쪽 결합이다. (같은 우선순위의 연산자는 항상 수식의 왼쪽부터 계산한다.)

  • 서로 다른 연산자가 같은 우선순위여도 된다.

  • 하나의 수식을 계산하는 도중에 우선순위를 바꿀 수 없다.

입력

입력은 다음 형식으로 주어진다. 0부터 9까지의 숫자와 연산자 '+', '-', '*', 괄호 '(', ')'로 이루어진 수식

  • 정확히 쓰면 입력은 다음 BNF가 나타내는 형식이다.
<expr> ::= ( <expr> ) | <number> | <expr> <op> <expr> 
<op> ::= + | - | *

<number>는 음이 아닌 정수를 나타낸다.

출력

수식에서 얻을 수 있는 최댓값을 한 줄에 출력하라.

제한

입력은 다음 제약을 만족한다.

  • 수식은 200자 이하이다.

  • 어떤 우선순위를 설정하더라도 계산 결과나 그 도중에 64비트 정수형으로 오버플로가 발생하지 않는다.

예제4

  1. 예제 1

    입력
    3-2*3
    
    예상 출력
    3
    
  2. 예제 2

    입력
    (5-3*4)*(0-2+1)
    
    예상 출력
    21
    
  3. 예제 3

    입력
    1-2+3-4+5-6*0
    
    예상 출력
    3
    
  4. 예제 4

    입력
    (1989967-3*1-211+4487)
    
    예상 출력
    8511076028