Biorąc pod uwagę listę bloków do upuszczenia w określonych punktach, wypisz wysokość wynikowej „wieży”.
Najlepszym sposobem wyjaśnienia tego wyzwania jest podanie przykładu. Wejście będzie listą liczb całkowitych 2n reprezentujących n bloków. Pierwsza liczba całkowita to pozycja x bloku, indeksowana 0, a druga to szerokość bloku. Na przykład dane wejściowe 2 4reprezentują blok (ze współrzędnymi x oznaczonymi poniżej):
####
0123456789
Powiedzmy, że dane wejściowe są 2 4 4 6. Oznacza to, że jeden blok przy x = 2 o szerokości 4, a jeden przy x = 4 o szerokości 6:
######
####
Zauważ, że a.) Bloki zawsze „spadają” z samego szczytu wieży, a b.) Bloki nigdy nie „przewracają się” (tzn. Zawsze się równoważą). Zatem wejście
2 4 4 6 12 1reprezentuje:
######
#### #
Zauważ, że ostatni blok spadł aż do „ziemi”.
Ostatecznym wynikiem powinna być maksymalna wysokość wieży przy każdej wartości x, aż do największej. Dlatego dane wejściowe 2 4 4 6 12 1powinny dawać wynik
0011222222001:
######
#### #
0011222222001
Dane wejściowe mogą być podawane jako ciąg oddzielony spacjami / przecinkami, tablica liczb całkowitych lub argumenty funkcji / wiersza poleceń. Pozycje bloku (wartości x) zawsze będą liczbami całkowitymi 0 lub większymi, szerokość zawsze będzie liczbą całkowitą 1 lub większą, i zawsze będzie co najmniej jeden blok.
Dane wyjściowe można podać jako pojedynczy ciąg oddzielony znakami nienumerycznymi (np. "0, 0, 1, ..."), Pojedynczy ciąg zawierający wszystkie cyfry (np.
"001..." - maksymalna wysokość to 9 lub mniej) lub tablicy liczb całkowitych.
Ponieważ jest to code-golf , wygra najkrótszy kod w bajtach.
Przypadki testowe:
In Out
---------------------------------------------------------
2 4 4 6 12 1 0011222222001
0 5 9 1 6 4 2 5 1133333222
0 5 9 1 2 5 6 4 1122223333
0 5 2 5 6 4 9 1 1122223334
20 1 20 1 20 1 00000000000000000003
5 5 000011111
0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 4 123456789999