Програміст та шестикутник#4635

Програміст та шестикутник

1 секунда
64 мегабайти
Дуже складна

Метою цієї задачі є розв'язати головоломку з дерев'яних шестикутників, які слід розмістити на кілочках, закріплених у дерев'яній основі. Кілочки розміщено, як показано на Рисунку 1, і пронумеровано від до для зручності. Шестикутники позначені великими літерами від 'A' до 'G' (див. Рисунок 2). Біля кожної сторони шестикутника зазначено ціле число (від до включно).

Коли шестикутників розміщено на кілочках, ребра кожного зовнішнього шестикутника та всі сторони шестикутника на кілочку є суміжними зі сторонами інших шестикутників. Щоб розв'язати головоломку, потрібно знайти розміщення та орієнтацію для всіх шестикутників так, щоб числа на кожній парі суміжних сторін збігалися (див. Рисунок 3).

Рисунок 3 — вигляд зверху на розв'язану головоломку

Вашій програмі слід прочитати опис семи шестикутників, знайти розв'язок, використовуючи ці шестикутників (якщо він існує), і вивести опис розв'язку. Якщо розв'язків декілька, дозволяється вивести будь-який з них. (Після знаходження одного розв'язку його можна перетворити, обертаючи шестикутник на кілочку і відповідно інші.) Якщо розв'язку не існує, виведіть відповідне повідомлення. Після розв'язання однієї головоломки слід продовжити з наступною.

Вхідні дані

Вхідні дані складаються з декількох тестів — кожен описує набір шестикутників. Кожен з перших рядків містить по цифр (без пробілів), які вказують числа на сторонах одного шестикутника. Перший рядок — шестикутник 'A', другий — 'B' і так до сьомого, який відповідає 'G'. Перша цифра — це число на стороні в позиції " Годин" або "ВЕРХ". Далі йде цифр за годинниковою стрілкою від "ВЕРХа". Наприклад, шестикутник з рисунка може бути заданий як . Числа на сторонах одного шестикутника не обов'язково різні.

Після семи рядків іде рядок із символом зірочки (*), який слугує роздільником між тестами. Після виведення відповіді на поточний набір треба перейти до наступного, і так далі до кінця файлу. Розділювач присутній після кожного набору, включаючи останній.

Вихідні дані

Для кожного набору шестикутників виведіть розв'язок.

Розв'язок — це таблиця з стовпців:

  • Перший стовпець — кілочки від до .

  • Другий — букви шестикутників, які розміщено на кілочках від до .

  • Третій — числа на сторонах відповідного шестикутника, починаючи зі сторони у "ВЕРХ" і далі за годинниковою стрілкою.

Кожен стовпець має бути підписаний: "PEG", "HEX" і "POSITION".

Якщо розв'язку немає, виведіть: "No solutions possible".

Після кожної відповіді (чи повідомлення про відсутність розв'язку) виведіть зірочок (*), щоб візуально відокремити результати різних головоломок.

Приклади

Приклад 1

Loading
Loading