Biorąc pod uwagę dwa parametry wzoru pasa i długości drogi , wydrukuj reprezentację ASCII oznaczeń pasa dla Roads and Traffic Service, aby pomalować drogi.
Przykładowe wejście / wyjście
Wejście:, BTHMLRPHU 21
Nie obchodzi mnie, jeśli weźmiesz dwa parametry lub połączysz liczbę na końcu łańcucha, to jest jednoznaczne.
Dane wejściowe mogą być pobierane z STDIN, jako argument funkcji, zmienne środowiskowe, cokolwiek ma sens w twoim języku.
Wynik:
! | 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 !
Każdy znak oznacza 0,5 metra szerokości i 1 kilometr długości.
Specyfikacja
Oznaczenia pasa ruchu
Dla każdego 10-kilometrowego odcinka drogi oznaczenia są malowane na kilometrach 2, 3, 9 i 10 (od „szczytu” wyjścia). Oznaczenia są wyśrodkowane na linii. Z wyjątkiem pasa rowerowego i środkowej, wszystkie pasy mają szerokość 3 metrów (6 znaków).
Diamentowe i strzałkowe znaki ASCII nie są dozwolone zamiast oznaczeń, jak wskazano w przykładowym wyjściu.
B: Droga rowerowa.Bcechowanie. 1,5 metra (3 znaki).T: Tranzyt. Diamentowe oznakowanieH: Pas samochodowy o wysokim obłożeniu.HOV3cechowanieLiR: Zakręt. Oznakowanie strzałekP: Pas mijania. Oznaczenia CaretU: Nieograniczony pas. Brak oznaczeń
Separatory (w kolejności pierwszeństwa)
- Mediana:
##(oznaczony przezMw ciągu wejściowym, zastępuje dowolny inny separator, w tym rów) - Rów (skrajna lewa i skrajna prawa):
!wykrzyknik - HOV pasy na przemian
xi|każde 5 km - Normalna:
|
Ograniczenia
Twoja funkcja lub program musi:
- Drukuj do STDOUT (oznacza to odpowiedniki
System.out.printJava,console.logJavaScript itp.) - Być w stanie wydrukować 1 - 9 pasów z 0 - 10 medianami
- Być w stanie wydrukować do 50 km jezdni (50 linii wyjściowych)
- Nie używaj żadnych standardowych luk
- Końcowe białe znaki są niedopuszczalne, z wyjątkiem opcjonalnego
\nna końcu wydruku
Największy możliwy wynik: 3700 bajtów (74 znaki * 50 wierszy).
Najmniejszy możliwy wynik: 5 bajtów (z wejściem B, 1)
Założenia
- Brak sąsiednich median (substring
MMnie wystąpi) - Druga linia oznaczeń może zostać odcięta (na przykład, jeśli długość wynosi 9 lub 12 km)
- Pasy mogą nie mieć logicznego sensu (możliwe jest dowolne zamówienie, na przykład pas skrętu w prawo po lewej stronie drogi)
To jest golf golfowy , więc wygrywa najkrótszy kod (w bajtach)!