Переміщення паличок
Ось простий пазл: Перемістіть одну паличку у фігурі нижче, щоб зробити рівняння правильним.
Легко, правда? Ось рішення:
Напишіть програму для розв'язання подібних пазлів, враховуючи наступне:
Кожен пазл складається з лівого операнда, оператора, правого операнда, знака рівності та результату. Два операнди та результат є числами, що складаються з однієї або більше цифр, і менші за 2^31.
Оператор і знак рівності не можна змінювати. Вам дозволено лише переміщати палички, що складають цифри.
Ви не можете повністю видаляти цифри або вводити нові. (тобто ви можете лише змінювати цифри.)
Провідні нулі дозволені як у вхідних даних, так і у вихідних. Провідні нулі у вихідних даних повинні бути надруковані.
Кожен пазл вказує кількість необхідних переміщень. Ваше рішення повинно перемістити стільки паличок, скільки вказано. Паличка переміщується не більше одного разу; її не можна перемістити знову. Якщо паличка переміщена, її початкове місце повинно залишитися порожнім. (тобто ви не можете перемістити іншу паличку на це місце.)
При розв'язанні пазлу з діленням, ділення повинно бути точним цілим діленням, тобто без залишку.
Цифри "написані" наступним чином:
Вхідні дані
Ваша програма буде протестована на одному або більше тестових випадках. Кожен тестовий випадок задається на одному рядку у наступному форматі:
A ⊙ B = R (n)
де A, B і R є послідовностями з однієї або більше цифр, але не більше дев'яти цифр. ⊙ є одним з чотирьох операторів: + - * /. n є натуральним числом, що представляє кількість паличок для переміщення. Один або більше пробілів розділяють A, ⊙, B, =, R і (n).
Кінець тестових випадків позначається окремим рядком зі словом "EOF" (без лапок).
Вихідні дані
Для кожного пазлу ваша програма повинна надрукувати один рядок у формі:
k. result
Де k є номером пазлу (починаючи з 1), а result є рівнянням після розв'язання пазлу. result не містить пробілів.
У випадку кількох рішень, надрукуйте лише одне. Якщо пазл не може бути розв'язаний, надрукуйте "UNSOLVABLE" (без лапок) як результат.