시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
수식이 하나 주어진다. 서로 짝이 맞는 괄호 쌍을 하나 이상 제거해서 만들 수 있는 서로 다른 수식을 모두 구하는 프로그램을 작성하시오.
주어진 수식의 괄호는 올바르게 짝지어져 있다. 예를 들어 1+2, (3+4), (3+4*(5+6))는 모두 괄호의 짝이 맞는 수식이다.
반대로 1+(2*3, ((2+3)*4처럼 닫히지 않거나 대응되는 괄호가 없는 수식은 올바르지 않다.
괄호를 제거할 때는 반드시 같은 쌍을 이루는 여는 괄호와 닫는 괄호를 함께 제거해야 한다.
예를 들어 (2+(2*2)+2)에서 만들 수 있는 식은 (2+2*2+2), 2+(2*2)+2, 2+2*2+2이다. (2+2*2)+2나 2+(2*2+2)는 서로 짝이 아닌 괄호만 제거해야 하므로 만들 수 없다.
하나의 식이 여러 겹의 괄호로 감싸져 있을 수도 있다.
첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식의 괄호는 올바르게 짝지어져 있다.
수식은 숫자, +, *, -, /, (, )로만 이루어진다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개, 많아야 10개이다.
올바른 괄호 쌍을 하나 이상 제거해서 만들 수 있는 서로 다른 모든 식을 사전순으로 출력한다.