Більшість людей знайомі з тропом про підрахунок овець до засинання. Там є стадо овець, деякі з них стрибають через паркан, і ти рахуєш овець, як вони стрибають. Нібито, це допомагає заспокоїти розум і ввести вас у стан сну, щоб ви заснули.
Ось ASCII вівця, що стоїть праворуч, і чекає, щоб його порахували:
'00^>
||
Ось овець ASCII, що стрибає через паркан:
'00^>
/\
++
Ось один, звернений ліворуч, вже підрахувавши:
<^00'
||
Змагання
Давши два цілих числа n
і m
, n > 2
описуючи, скільки овець усього, і m > 0
сказати, скільки овець вже підраховано, виведіть ASCII художнє зображення підрахунку овець до засинання.
Тепер для повороту:
- Зважаючи на розмір ручок, в яких є вівці, верхній ряд може вміщувати максимум
10
овець, не враховуючи стрибаючих в даний час овець, які також завжди повинні бути у верхньому ряду. - У наступних рядах не може бути овець поза їхніми ручками (у другому ряду ліворуч не може бути більше овець, ніж у першому, а в правому).
- Якщо є
11
чи більше загальної кількості овець, у верхньому ряду повинно бути10
плюс стрибаючих овець. - Провідна / відстала пробіли та пробіли між овець не мають значення, якщо:
- Між овечками є мінімум один символ пробілу
- Усі символи розташовуються належним чином.
Поки ці правила виконуються, фактичне розташування овець залежить від вашої реалізації.
Приклади
Наприклад, ось n=3
і m=1
, найпростіший випадок.
'00^>
'00^> /\ <^00'
|| ++ ||
Ось n=11
і m=6
найбільше овець, які можуть вміститися на одній горизонтальній лінії.
'00^>
'00^> '00^> '00^> '00^> /\ <^00' <^00' <^00' <^00' <^00' <^00'
|| || || || ++ || || || || || ||
Ось інший приклад того, з n=11
іm=1
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00'
|| || || || || || || || || ++ ||
Більший приклад з n=30
іm=12
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> <^00' <^00'
|| || || || || || || || || ||
'00^> <^00' <^00'
|| || ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
Ось приклад з n=17
іm=2
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || ||
Ось приклад з n=19
іm=3
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00' <^00'
|| || || || || || || ++ || || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || || ||
'00^>
||
Зауважте, що все це - приклади . Для останнього ви можете закінчити створення вертикального масиву овець з правого боку, що дозволить лівій частині замість цього поміститися на два ряди. А може бути 2х2 квадратних овець з правого боку, які також помістили б овець з лівої сторони на два ряди. І т.д.
I / O та правила
- Введення даних може бути здійснено у будь-якому розумному форматі та будь-яким зручним способом .
- Провідні / остаточні рядки чи інші пробіли необов’язкові, за умови, що символи розташовуються належним чином.
- Прийнятна або повна програма, або функція. Якщо функція, ви можете повернути вихід, а не надрукувати його.
- Вихід може бути на консолі, повернутий у вигляді списку рядків, повернутий як окремий рядок тощо.
- Стандартні лазівки заборонені.
- Це код-гольф, тому застосовуються всі звичайні правила гольфу, і найкоротший код (у байтах) виграє.
n=11
таm=9
n=11
таких , що 0<m<=10
. Це змушує вас мати всіх овець у верхньому ряду та динамічну кількість овець ліворуч ( n-1-m
) та праворуч ( m
) огорожі та не можете використовувати фіксований розмір пера.