Сложение кубов
Рассмотрим следующий шаблон положительных целых чисел:
3 3 1
3 1
2
Обратите внимание, что каждый рядок выровнен по левому краю и не длиннее предыдущего. Также элементы в каждом рядке, если читать слева направо, не возрастают, и элементы в каждом столбце, если читать сверху вниз, тоже не возрастают. Мы будем называть такой шаблон шаблоном укладки (ШУ), так как он может представлять способ укладки кубиков в углу следующим образом: если вы рассматриваете размещение самого верхнего рядка и самого левого столбца у стен, то ШУ дает вид сверху на то, сколько кубиков уложено вертикально. Приведенный выше ШУ представляет следующую укладку в углу:
Мы будем называть стену напротив самого верхнего рядка правой стеной, а стену напротив самого левого столбца левой стеной. Вот еще один ШУ и укладка в углу, которую он представляет:
Обратите внимание, что если повернуть укладку в углу так, чтобы левая стена стала полом, а пол стал правой стеной, у вас все равно будет укладка в углу. (Мы будем называть это левым поворотом.) Аналогично, у вас все равно будет укладка в углу, если повернуть так, чтобы правая стена стала полом, а пол стал левой стеной. (Мы будем называть это правым поворотом.) Таким образом, ШУ левого и правого поворотов первого приведенного выше ШУ:
Вы должны проверить, что как левый, так и правый повороты второго примера ШУ идентичны исходному ШУ.
Входные данные
Эта задача будет состоять из нескольких экземпляров задачи. Каждый экземпляр задачи будет состоять из положительного целого числа n ≤ 11, указывающего количество рядков в следующем ШУ. (n = 0 указывает на конец ввода.) Рядки ШУ будут следовать, по одному на строку, с элементами, разделенными одиночными пробелами, ограниченными завершающим 0. (Завершающий 0, конечно, не является частью входных данных, и вы можете предположить, что в каждом данном рядке есть хотя бы один кубик.) Каждый элемент в шаблоне будет положительным целым числом, не превышающим 20, и в любом рядке будет не более 20 элементов.
Выходные данные
Для каждого входного ШУ вы должны создать два шаблона укладки, соответствующих левому и правому поворотам (в этом порядке). Рядки ШУ должны быть выровнены по левому краю с элементами, разделенными одиночным пробелом. Один пустой рядок должен разделять левый и правый повороты данного ШУ, а два пустых рядка должны разделять вывод для разных экземпляров задачи.