네 개의 4

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

정수 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이 주어진다. (1m10001 \le m \le 1000)

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

출력

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

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

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

힌트

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