Вы знаете те складные полки, которые в основном представляют собой деревянные ящики, которые можно сложить вместе? Мы собираемся смоделировать построение некоторых книжных полок из тех, что с искусством 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||
|------------|