Враховуючи два параметри смуги смуги та довжину дороги , надрукуйте 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.logJavaScript тощо) - Вміти друкувати 1 - 9 смуг із 0 - 10 медіанами
- Вміти друкувати до 50 км проїжджої частини (50 ліній випуску)
- Не використовуйте стандартних лазівки
- Недопустимий пробіл білого кольору не є винятком, за винятком необов'язкового
\nв кінці виводу
Найбільший можливий вихід: 3700 байт (74 символи * 50 рядків).
Найменший можливий вихід: 5 байт (з входом B, 1)
Припущення
- Немає суміжних медіанів (підрядка
MMне відбудеться) - Другий рядок розмітки може бути відрізаний (наприклад, якщо довжина становить 9 або 12 км)
- Доріжки можуть не мати логічного сенсу (можливий будь-який порядок, наприклад, смуга правого повороту зліва від дороги)
Це код-гольф , тому найкоротший код (у байтах) виграє!