막대 옮기기

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

문제

간단한 퍼즐을 하나 보자. 아래 그림에서 막대 하나를 옮겨 등식을 옳게 만들면 된다.

쉬운 문제다. 답은 아래와 같다.

이런 퍼즐을 푸는 프로그램을 작성하라. 규칙은 다음과 같다.

  1. 퍼즐 하나는 왼쪽 피연산자, 연산자, 오른쪽 피연산자, 등호, 결과로 이루어진다. 두 피연산자와 결과는 한 자리 이상의 숫자로 적은 수이며, 모두 $2^{31}$보다 작다.
  2. 연산자와 등호는 바꿀 수 없다. 숫자를 이루는 막대만 옮길 수 있다.
  3. 숫자를 통째로 없애거나 새로 만들 수는 없다. 옮기기 전과 옮긴 뒤 모두 각 자리에 숫자가 하나씩 있어야 한다.
  4. 입력과 출력 모두 앞자리 0을 허용하며, 출력에서 앞자리 0은 반드시 적는다.
  5. 퍼즐마다 옮겨야 할 막대의 개수가 주어지고, 정확히 그 개수만큼 옮겨야 한다. 막대 하나는 많아야 한 번 옮기며, 막대가 빠져나온 자리는 빈 채로 남는다. 즉 그 자리에는 다른 막대를 놓을 수 없다.
  6. 나눗셈은 나머지 없이 딱 떨어져야 한다.
  7. 숫자는 아래 그림처럼 획 일곱 개로 적는다.

숫자사용하는 획
0위, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 아래
1오른쪽 위, 오른쪽 아래
2위, 오른쪽 위, 가운데, 왼쪽 아래, 아래
3위, 오른쪽 위, 가운데, 오른쪽 아래, 아래
4왼쪽 위, 오른쪽 위, 가운데, 오른쪽 아래
5위, 왼쪽 위, 가운데, 오른쪽 아래, 아래
6위, 왼쪽 위, 가운데, 왼쪽 아래, 오른쪽 아래, 아래
7위, 오른쪽 위, 오른쪽 아래
8일곱 획 전부
9위, 왼쪽 위, 오른쪽 위, 가운데, 오른쪽 아래

입력

입력은 퍼즐 하나 이상으로 이루어진다. 퍼즐 하나는 한 줄에 다음 형식으로 주어진다.

A ⊙ B = R (n)

A, B, R은 한 자리 이상 아홉 자리 이하의 숫자열이다. ⊙은 +, -, *, / 네 연산자 중 하나다. n은 옮겨야 할 막대의 개수를 나타내는 자연수다. A, ⊙, B, =, R, (n) 사이는 공백 한 칸 이상으로 구분한다.

입력의 끝은 EOF라는 단어만 적힌 줄로 표시한다. 따옴표는 붙이지 않는다.

출력

퍼즐마다 한 줄씩 출력한다.

k.␣result

k는 1부터 세는 퍼즐 번호이고, ␣는 공백 한 칸, result는 퍼즐을 푼 뒤의 등식이다. result에는 공백을 넣지 않는다. 답이 여러 개면 사전순으로 가장 앞서는 답을 출력한다. 즉 왼쪽 피연산자가 가장 작은 답을 고르고, 그런 답이 여럿이면 그중 오른쪽 피연산자가 가장 작은 답을 고른다. 풀 수 없는 퍼즐이면 result 자리에 UNSOLVABLE을 적는다. 따옴표는 붙이지 않는다.