Враховуючи два параметри смуги смуги та довжину дороги , надрукуйте ASCII зображення розмітки смуги руху для доріг та дорожнього руху для фарбування доріг.
Приклад введення / виводу
Вхід:, BTHMLRPHU
21
Мені байдуже, якщо ви візьмете два параметри чи об'єднаєте число в кінець рядка, це однозначно.
Введення даних може бути взято з STDIN як аргумент функції, змінні середовища, незалежно від того, що має сенс для вашої мови.
Вихід:
! | x ## | | x x !
! B | /\ x HOV3 ## <- | -> | ^^ x HOV3 x !
! B | \/ x HOV3 ## | | | | ^^ x HOV3 x !
! | x ## | | x x !
! | x ## | | x x !
! | | ## | | | | !
! | | ## | | | | !
! | | ## | | | | !
! B | /\ | HOV3 ## <- | -> | ^^ | HOV3 | !
! B | \/ | HOV3 ## | | | | ^^ | HOV3 | !
! | x ## | | x x !
! B | /\ x HOV3 ## <- | -> | ^^ x HOV3 x !
! B | \/ x HOV3 ## | | | | ^^ x HOV3 x !
! | x ## | | x x !
! | x ## | | x x !
! | | ## | | | | !
! | | ## | | | | !
! | | ## | | | | !
! B | /\ | HOV3 ## <- | -> | ^^ | HOV3 | !
! B | \/ | HOV3 ## | | | | ^^ | HOV3 | !
! | x ## | | x x !
Кожен символ позначає 0,5 метра в ширину і один кілометр в довжину.
Специфікація
Маркування смуги
На кожні 10 км ділянки дороги розмітка розміщується на кілометрах 2, 3, 9 та 10 (від «верху» виходу). Розмітки розміщені по центру в смузі. За винятком велосипедної смуги та медіани, всі смуги завширшки 3 метри (6 символів).
Символи алмазів і стрілок ASCII не дозволяються замість маркування, як зазначено у вихідному прикладі.
B
: Велосипедна смуга.B
маркування. 1,5 метра (3 символи) в ширину.T
: Транзит. Алмазне маркуванняH
: Смуга транспортних засобів високої зайнятості.HOV3
маркуванняL
іR
: Поворот смуги. Маркування стрілкиP
: Проїжджаючи провулок. Маркування каретU
: Смуга без обмежень. Немає маркування
Роздільники (в порядку черговості)
- Медіана:
##
(позначаєтьсяM
у вхідному рядку, замінює будь-який інший роздільник, включаючи рів) - Кювет (крайній лівий і крайній правий):
!
знак оклику - Доріжки HOV чергуються
x
і|
кожні 5 км - Звичайний:
|
Обмеження
Ваша функція або програма повинні:
- Друк в STDOUT (це означає еквіваленти
System.out.print
для Java,console.log
JavaScript тощо) - Вміти друкувати 1 - 9 смуг із 0 - 10 медіанами
- Вміти друкувати до 50 км проїжджої частини (50 ліній випуску)
- Не використовуйте стандартних лазівки
- Недопустимий пробіл білого кольору не є винятком, за винятком необов'язкового
\n
в кінці виводу
Найбільший можливий вихід: 3700 байт (74 символи * 50 рядків).
Найменший можливий вихід: 5 байт (з входом B
, 1)
Припущення
- Немає суміжних медіанів (підрядка
MM
не відбудеться) - Другий рядок розмітки може бути відрізаний (наприклад, якщо довжина становить 9 або 12 км)
- Доріжки можуть не мати логічного сенсу (можливий будь-який порядок, наприклад, смуга правого повороту зліва від дороги)
Це код-гольф , тому найкоротший код (у байтах) виграє!