Прямокутник#7192

Прямокутник

1 секунда
64 мегабайти
Середня

Створіть програму, яка встановить, як у послідовності прямокутників останній утворити з решти прямокутників склеюванням їх вздовж сторін без розрізань і без перекриття внутрішніми частинами.

Вхідні дані

Містить натуральне число (n < 15), а далі - послідовність (n + 1)-ої пари натуральних чисел, що є довжинами та висотами відповідних прямокутників. Площі усіх прямокутників не перевищують .

Вихідні дані

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

Перші два числа такої четвірки - це координати нижньої лівої вершини прямокутника, третє число - його номер, останнє число або відповідно до того, чи повернуто на 90^\circ цей прямокутник, чи ні.

Рядки потрібно записати в лексикографічному порядку, а в кожному рядку четвірки чисел також потрібно розташувати у лексикографічному порядку.

Якщо склеювання неможливе, то вивести два слова: No solution.

Приклади

Приклад 1

Loading
Loading