0으로 만들기
시간 제한1초메모리 제한1024 MB
주어진 N개의 수 사이에 덧셈, 뺄셈, 곱셈과 최대 한 쌍의 괄호를 끼워 넣어 수식의 값이 0이 되게 만들거나, 불가능하면 NO를 출력한다.
문제
개의 정수로 이루어진 수열 이 주어집니다. 여러분은 수와 수 사이에 연산자를 하나씩 끼워 넣어서 수식을 완성해야 합니다. 단, 수열의 순서는 바꿀 수 없습니다.
연산자는 덧셈(+), 뺄셈(-), 곱셈(×)만 사용할 수 있으며, 연산자의 우선순위는 곱셈이 덧셈과 뺄셈보다 앞섭니다.
또한 여러분은 완성된 수식에 최대 하나의 괄호를 사용할 수 있는데, 여는 괄호 뒤에는 반드시 숫자가 등장해야 하며, 마찬가지로 닫는 괄호 앞에는 반드시 숫자가 등장해야 합니다. 사칙연산의 규칙상, 괄호 안에 들어있는 식을 먼저 계산해야 합니다.
다음은 올바른 수식과 그렇지 않은 수식의 예시입니다.
- : 맨 앞의 숫자에 연산자가 사용되었으므로, 올바르지 않은 수식입니다.
- : 여는 괄호 뒤에 연산자가 등장하였으므로, 올바르지 않은 수식입니다.
- : 숫자 사이에 연산자가 사용되지 않았으므로, 올바르지 않은 수식입니다.
- : 올바른 수식입니다.
- : 올바른 수식입니다.
- : 괄호의 순서가 바뀌었으므로, 올바르지 않은 수식입니다.
- : 두 쌍 이상의 괄호가 사용되었으므로, 올바르지 않은 수식입니다.
연산자와 괄호를 적절히 추가하여 완성된 수식의 결괏값이 이 되도록 할 수 있다면 첫째 줄에 YES를 출력하고, 둘째 줄에 결괏값이 이 되도록 하는 완성된 수식을 출력해 주세요.
만약 연산자와 괄호를 어떻게 사용해도 수식의 결괏값을 으로 만들 수 없다면 NO를 출력해 주세요.
입력
첫째 줄에 수의 개수 이 주어집니다.
둘째 줄에는 수열 이 공백으로 구분되어 주어집니다.
출력
연산자와 괄호를 적절히 추가하여 완성된 수식의 결괏값이 이 되도록 할 수 있다면 첫째 줄에 YES를 출력하고, 둘째 줄에 결괏값이 이 되도록 하는 완성된 수식을 출력해 주세요. 단, 곱셈 기호는 *를 사용하여 출력해야 합니다.
만약 연산자와 괄호를 어떻게 사용해도 수식의 결괏값을 으로 만들 수 없다면 NO를 출력해 주세요.