Вступ
Довга коротка історія: кілька днів тому я випадково почав в’язати шкарпетку, і досить логічна структура простих стібків підводить мене до думки: Чому ми не просто ASCII в'яжемо шкарпетку?
Вхідні дані
Вхід - це ціле число N у діапазоні [2,30]
.
Вихідні дані
Вихід - носок, очевидно.
Будова
Тому що ми будемо використовувати лише звичайні шви, які ви будете використовувати лише v
для нижньої строчки і >
для стібка праворуч. Дозвольте пояснити всю структуру на прикладі N=8
:
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvv>>>
vvvvvv>>>>>>
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
- Перший блок - це верхня частина. Він має ширину
N
і висотуN*1.5
- Після цього починається каблук. Ви віднімаєте по одному
v
рядку з правого боку, поки не будете матиN/2
ширину. Потім ви додаєтеN/2
рядки з шириноюN/2
внизу, щоб закінчити вниз в'язання. Зауважте, що він дає загальну кількістьN/2 + 1
рядків із шириноюN/2
перша частина:
vvvvvvvv //begin with width N
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv // N*1.5 times
vvvvvvv // reduce
vvvvvv
vvvvv
vvvv // till here
vvvv // repeat N/2 times
vvvv
vvvv
vvvv
- Тепер починаються в’язання бічних підопічних. Ви починаєте з першого зменшеного ряду, заповнюєте,
>
поки не отримаєте ширинуN
і додасте ще два. Продовжуйте цей процес, включаючи перший ряд ізN/2
шириною - Заповніть рядки внизу до цього рівня та додайте
N*1.5
>
до них раз - Залиште зовнішні частини такими, якими вони є, і додайте на рядок під першою та над лазкою ще дві
>'s
поки вона не закінчиться
друга частина:
vvvvvvvv
vvvvvvv>>> //fill to N and add two >
vvvvvv>>>>>> //repeat
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>> //till here
vvvv>>>>>>>>>>>>>>>>>>>>>>>> //fill to the row above and add N*1.5 times >
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row above
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row beneath
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
Правила
Нові лінії в порядку.
Ви можете вибрати між великими або малими літерами V
але це повинно бути послідовним.
Це код-гольф, тому найкоротший код у байтах виграє.
Тестові справи
N=2
vv
vv
vv
v>>>
v>>>>>>
N=4
vvvv
vvvv
vvvv
vvvv
vvvv
vvvv
vvv>>>
vv>>>>>>
vv>>>>>>>>>>>>
vv>>>>>>>>>>>>
N=6
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvv>>>
vvvv>>>>>>
vvv>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
N=12
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvv>>>
vvvvvvvvvv>>>>>>
vvvvvvvvv>>>>>>>>>
vvvvvvvv>>>>>>>>>>>>
vvvvvvv>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
v
або V
взаємозамінно? На даний момент я припускаю, що v
це єдиний дозволений, але дозволяючи V
вплинути на кількість байтів