만드는 중입니다

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

My Number

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

요약
최대 12개의 정수로 된 배열 B를 만들고, B의 원소만으로 +, -, *와 괄호를 써서 각 목표값 A_i를 만드는 식을 출력합니다.
난이도

보통10점 중 7점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

Taaaamara는 세르비아 퀴즈 Slagalica의 열렬한 팬이다. 이 퀴즈에서 그녀가 가장 좋아하는 게임은 My Number이다. 이 게임에서는 정수들의 집합 SS와 목표 숫자 TT가 주어진다. SS의 각 원소는 최대 한 번씩 사용할 수 있고, 몇 가지 사칙연산을 조합해서 값이 TT와 같은 올바른 수식을 만든다. 예를 들어 S={2,5,2,15,10}S = \{2, 5, 2, 15, 10\}이고 T=38T = 38이면, 올바른 수식 중 하나는 2×(15+5)−22 \times (15 + 5) - 2이다.

오늘 Taaaamara는 이 게임을 변형한 버전을 하고 있다.

  • 그녀는 정수 nn개로 이루어진 배열 AA를 가지고 있다. 배열의 모든 원소는 목표 숫자이다.
  • 그녀는 원소가 kk개인 배열 BB를 찾아야 한다. BB의 원소는 서로 달라야 할 필요는 없다. BB의 모든 원소는 [1,108][1, 10^8] 범위의 정수여야 한다.
  • 그녀는 BB의 원소만 사용해서 각 목표 숫자 AiA_i에 대한 올바른 수식을 하나씩 만들려고 한다. 어떤 원소가 BB에 xx번 들어 있다면, 각 수식에서 그 원소는 최대 xx번까지 사용할 수 있다.
  • 이항 연산자는 +(덧셈), -(뺄셈), *(곱셈)을 사용할 수 있다. 나눗셈은 허용되지 않는다. 괄호도 사용할 수 있다.
  • 배열 BB의 길이 kk는 정해져 있지 않지만, 1212를 넘으면 안 된다(k≤12k \leq 12).

그녀를 도와줄 수 있겠는가?

입력

첫 번째 줄에 정수 nn(1≤n≤1241 \leq n \leq 124)이 주어진다. 두 번째 줄에는 배열 AA의 정수 nn개(1≤Ai≤1081 \leq A_i \leq 10^8)가 주어진다.

출력

첫 번째 줄에 배열 BB의 길이인 정수 k≤12k \leq 12를 출력한다. 두 번째 줄에는 BB의 정수 kk개를 출력한다. 이어지는 nn개의 줄에는 올바른 수식을 한 줄에 하나씩 출력하며, ii번째 줄의 수식 값은 AiA_i와 같아야 한다. 수식은 다음 규칙을 따라야 한다.

  • 각 수식은 최대 1000자이다.
  • 덧셈에는 +(ASCII 43)를 사용한다.
  • 뺄셈에는 -(ASCII 45)를 사용한다.
  • 곱셈에는 *(ASCII 42)를 사용한다.
  • 괄호에는 ((ASCII 40)와 )(ASCII 41)를 사용한다.
  • +와 -는 단항 연산자로 쓸 수 없다. 예를 들어 -5 + 3과 5 - -3은 올바르지 않다.
  • 위 문자 외에는 BB의 수와 공백(ASCII 32)만 사용할 수 있다.

출력 형식은 특별히 맞출 필요가 없다.

예제1

  1. 예제 1

    입력
    6
    30 13 15 5 3 21
    
    예상 출력
    3
    2 5 3
    2*5*3
    5*3- 2
    5 *3
       (5)
    5 -2
    3* (5+2 )