만드는 중입니다

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

네 개의 4

면접 대비

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

요약
4를 네 번 쓰고 *, +, -, / 중 연산자 세 개를 넣어 각 질의값과 같은 식 중 사전 순으로 가장 앞선 식을 출력합니다.
난이도

쉬움10점 중 3점

유형
완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

정수 nn이 주어지면 값이 nn이 되는 식을 하나 만든다. 식에는 숫자 4를 정확히 네 번 쓰고, 네 개의 4 사이에는 *, +, -, / 중에서 고른 이항 연산자를 정확히 세 번 쓴다. 쓸 수 있는 숫자는 4뿐이다. 4를 이어 붙여 44나 444 같은 수를 만드는 것은 허용하지 않는다.

나눗셈은 0 방향으로 소수점 아래를 버리는 정수 나눗셈이라서 4 / 4 / 4의 값은 0.25가 아니라 0이다. 연산자 우선순위는 보통의 사칙연산과 같아서 4 + 4 * 4의 값은 32가 아니라 20이다.

이 규칙으로 만들 수 있는 식은 모두 64개뿐이므로, 어떤 식으로도 만들 수 없는 nn이 있다. 예를 들어 n=11n = 11을 만드는 식은 없다.

입력

첫 줄에 테스트 케이스의 개수 mm이 주어진다. (1≤m≤10001 \le m \le 1000)

이어지는 mm개의 줄에 각 테스트 케이스의 정수 nn이 하나씩 주어진다. (−1000000≤n≤1000000-1000000 \le n \le 1000000)

출력

각 테스트 케이스마다 한 줄씩 출력한다.

값이 nn이 되는 식이 있으면 그 식을 4 * 4 - 4 * 4 = 0 형식으로 출력한다. 숫자, 연산자, 등호는 각각 공백 하나로 구분한다. 그런 식이 없으면 no solution을 출력한다.

값이 nn이 되는 식이 여러 개면 출력할 문자열이 사전순으로 가장 앞서는 식 하나만 출력한다. 네 개의 4는 서로 같으므로, 이는 연산자 세 개를 왼쪽부터 비교해 *, +, -, / 순서로 가장 앞선 것을 고르는 것과 같다.

힌트

연산자 자리는 세 곳이고 각 자리의 후보는 네 가지이므로, 서로 다른 식은 64개뿐이다. 64개를 모두 계산해 값마다 사전순으로 가장 앞선 식을 미리 표에 담아 두면 각 테스트 케이스는 표를 한 번 찾는 것으로 끝난다.

예제2

  1. 예제 1

    입력
    5
    9
    0
    7
    11
    24
    
    예상 출력
    4 + 4 + 4 / 4 = 9
    4 * 4 - 4 * 4 = 0
    4 + 4 - 4 / 4 = 7
    no solution
    4 * 4 + 4 + 4 = 24
    
  2. 예제 2

    입력
    3
    -1
    -60
    3
    
    예상 출력
    4 - 4 - 4 / 4 = -1
    4 - 4 * 4 * 4 = -60
    no solution