Вы знаете те складные полки, которые в основном представляют собой деревянные ящики, которые можно сложить вместе? Мы собираемся смоделировать построение некоторых книжных полок из тех, что с искусством ASCII.
Все наши книги одинаково удобны по размеру и выглядят следующим образом:
|X|
|X|
|X|
Книжные полки представляют собой отдельные коробки, всегда по три символа высотой изнутри (достаточно для размещения книги в вертикальном положении), состоящие из |
символов слева и справа, -
символов сверху и снизу и достаточно широкие для размещения X
книг (где X
вводится целое число). Например, вот книжная полка размера 3
:
|---------|
| |
| |
| |
|---------|
потому что вы можете вписать 3
книги в него так
|---------|
||X||X||X||
||X||X||X||
||X||X||X||
|---------|
Входными данными будут два строго положительных целых числа, X
а Y
где X
ширина имеющихся у нас полок (измеряется в книгах) и Y
сколько книг нам нужно сложить. Если у нас больше книг, чем умещается на одной полке, нам нужно добавить больше полок сверху. Например, здесь ввод 4 wide / 6 books
:
|------------|
||X||X| |
||X||X| |
||X||X| |
|------------|
|------------|
||X||X||X||X||
||X||X||X||X||
||X||X||X||X||
|------------|
Если Y % X > 0
, имея в виду, что количество книг не является целым числом, кратным размеру полки, остальные книги должны занимать самую верхнюю левую позицию (как в случае с 4 6
выше), а оставшаяся часть этой полки заполняется пространства.
вход
- Два строго положительных целых числа в любом удобном формате , каждое
>0
. - Вы можете использовать входные данные в любом порядке (например, сначала размер полок, затем количество книг или наоборот). Пожалуйста, укажите в заявке порядок ввода.
- Вы можете смело предположить, что ни один из входных данных не будет больше размера вашего языка по умолчанию
[int]
(или эквивалентного).
Выход
В результате ASCII художественное представление книг и книжных полок.
правила
- Начальные или завершающие символы новой строки или пробелы являются необязательными, при условии, что сами символы выстроены правильно.
- Допустимы либо полная программа, либо функция. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы другие люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Дальнейшие примеры
6 wide / 2 books
|------------------|
||X||X| |
||X||X| |
||X||X| |
|------------------|
2 wide / 6 books
|------|
||X||X||
||X||X||
||X||X||
|------|
|------|
||X||X||
||X||X||
||X||X||
|------|
|------|
||X||X||
||X||X||
||X||X||
|------|
4 wide / 9 books
|------------|
||X| |
||X| |
||X| |
|------------|
|------------|
||X||X||X||X||
||X||X||X||X||
||X||X||X||X||
|------------|
|------------|
||X||X||X||X||
||X||X||X||X||
||X||X||X||X||
|------------|