W ramach projektu urbanistycznego otrzymałeś zadanie stworzenia programu lub funkcji, która wyświetli panoramę miasta, biorąc pod uwagę pewien wkład architektów. Projekt jest dopiero w fazie początkowej, więc wystarczy bardzo przybliżony szkic. Najłatwiej jest oczywiście narysować linię horyzontu w sztuce ASCII.
Wszystkie budynki będą nad rzeką, więc wszystkie są wyrównane. Architekci podadzą wysokość każdego budynku jako dane wejściowe, a Twój kod powinien wyświetlać linię horyzontu.
Dane wejściowe od architektów będą albo liczbami całkowitymi, albo pół liczbami całkowitymi. Jeśli liczba jest liczbą całkowitą, budynek będzie miał płaski dach, a połowa będzie skutkować dachem dwuspadowym. Zero będzie po prostu płaskie. Ściany budynku są oddalone od siebie o 3 znaki, a zero będzie miało szerokość jednego znaku. Sąsiednie budynki dzielą ściany.
Aby uzyskać szczegółowe informacje i wyjaśnienia dotyczące wyników, spójrz na poniższe przykłady:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_
Przykładowe dane wejściowe: 3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|
Przykładowe dane wejściowe: 0 0 2.5 3 0 4 1
___
_ ___ | |
/ \| | | |
| | | | |___
__|___|___|_|___|___|
Louisville ,0 2 1 3.5 0 4 2 4 2 4 6 1 6 0 5 1
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|
Stosowane znaki ASCII to: nowa linia, spacja i /\_|(punkty kodowe 10, 32, 47, 92, 95, 124).
Zasady:
- Opcjonalne jest utworzenie programu, który przyjmuje tylko liczby całkowite jako dane wejściowe, poprzez pomnożenie wszystkich liczb przez dwa. Więc zamiast brać
3 3.5 2, twój program może zająć6 7 4. Jeśli zostanie wybrany drugi format wejściowy, wprowadzenie wartości 6 powinno dać budynek trzypiętrowy, 7 powinien być budynkiem trzypiętrowym ze spadzistymi dachami itp. - Dane wyjściowe powinny być dokładnie takie, jak opisano powyżej, ale końcowe spacje i znaki nowej linii są prawidłowe.
- Dokładny format danych wejściowych jest opcjonalny. Cokolwiek jest najlepsze w twoim języku.
- Wynik musi być wyświetlony na ekranie, aby architekci mogli go obejrzeć.
- Możesz założyć, że podana zostanie co najmniej jedna liczba całkowita i że podana będzie tylko poprawna wartość wejściowa.
To jest codegolf, więc wygrywa najkrótszy kod w bajtach.