Affine Mess#2282

Affine Mess

3 секунди
256 мегабайтів
Легка

Tess L. Ation потрапила в невеличку халепу минулого тижня, коли демонструвала бета-версію свого нового програмного забезпечення для малювання. На екрані була елегантна демонстраційна схема, що ілюструвала кожну можливість її програми; їй знадобилося кілька годин, щоб створити її. Вона саме вносила останні штрихи, коли до кімнати увійшла група потенційних інвесторів, щоб ознайомитись із демонстрацією.

Презентація пройшла добре. Наприкінці Тесс натиснула кнопку на панелі керування й сказала аудиторії: «Це — регулятор "прив'язки до сітки". Він змушує контрольні точки, такі як вершини, переходити до найближчої точки сітки. Ось, дивіться,» — і вона розмістила три яскраво-червоні точки на екрані. Кожна з'являлася у точці сітки, найближчій до місця, куди вона натискала. («На щастя, всі контрольні точки в моїй демонстрації вже були у цілих координатах. Але треба буде не забути видалити ці три червоні точки перед тим, як зберегти схему», — подумала вона.) «Тепер я відійду до сусідньої кімнати та не заважатиму, а ви можете поговорити між собою та уважніше розглянути зображення на екрані, тільки нічого не чіпайте — я ще не зберегла цей файл.»

Через кілька хвилин група приєдналася до Тесс. Один із відвідувачів підійшов до Тесс і сказав: «Сподіваюся, ви не проти, я хотів спробувати сам. Не хвилюйтесь, я трохи погрався лише з налаштуваннями масштабування по й .» Наступний сказав: «Вибачте, якщо це проблема, але мені дуже хотілося оцінити швидкість відображення, тому я просто поекспериментував з інструментом переміщення.» А третій додав: «Я не втримався від маленького тесту: повернув зображення, щоб побачити, як усі вершини пристають до найближчих точок сітки після обертання.»

Той, хто користувався інструментом обертання, згадав, що був першим, а двоє інших не пригадували своєї черговості. Всі троє пригадали лише кілька деталей змін. Фактори масштабування по та були (можливо, від'ємними) ненульовими цілими числами; центром масштабування був початок координат (, ). Зсуви по та також були цілими числами. Обертання задавалось точкою з цілими координатами (, ) на межі квадрата шириною з центром у початку координат (тобто, -10 \leq x, y \leq 10 і модуль або , або обох був ). Інструмент повертав креслення навколо початку координат так, щоб додатна вісь після обертання проходила через точку (, ). Прив'язка до сітки виконувалась після цього обертання (координати з дробовою частиною округлювались від нуля).

Після їхнього відходу Тесс глянула на свою схему — вона була зовсім іншою! Вона ще не реалізувала функцію «скасувати», а схему до демонстрації не зберегла. Проте три однакові червоні точки все ще були на місці (перетворені в інші цілі координати сітки, звісно), і Тесс пам'ятала цілі координати, де вона їх розмістила спочатку. Можливо, хтось іще змінив малюнок, не сказавши їй про це, але вона могла написати програму, щоб перевірити, чи взагалі можливо відновити послідовність змін. А чи зможеш ти?

Вхідні дані

Вхід містить кілька тестових випадків. Кожен тест складається з шести пар чисел x_i та y_i (-500 \leq x_i, y_i \leq 500 для 1 \leq i \leq 6), по три пари в одному рядку. Перші три пари — це різні початкові координати червоних точок. Останні три пари — це різні фінальні координати цих точок. Порядок пар у кожній трійці неважливий: наприклад, (x_1, y_1) міг перейти у будь-яку з (x_4, y_4), (x_5, y_5) або (x_6, y_6).

Після останнього тесту йде рядок з шістьма нулями.

Вихідні дані

Для кожного тесту виведіть номер тесту та одне з трьох повідомлень:

- equivalent solutions якщо існує одне чи кілька коректних перетворень, які у результаті завжди дають один і той самий ефект для всього малюнка (незалежно від його вмісту).

- inconsistent solutions якщо існує кілька коректних перетворень, але загалом не всі вони відображають увесь малюнок однаково (деякі елементи малюнка відображаються по-різному у різних перетвореннях).

- no solution якщо жоден із перших двох випадків не має місця.

Коректне перетворення — це комбінація з обертання, зміщення та масштабування (або обертання, масштабування та зміщення), які задовольняють зазначеним вище обмеженням та переводять початкову трійку точок у фінальну трійку (займають усі три фінальні місця).

Дотримуйтесь формату зразка у прикладі.

Приклади

Приклад

Вхідні дані
3 2  2 1  6 7  1 4  7 9  4 2
3 2  2 1  1 8  7 9  1 4  2 6
0 0  0 0  0 0  0 0  0 0  0 0
Вихідні дані
Case 1: equivalent solutions
Case 2: no solution

Приклад 1

Loading
Loading