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 4
reprezentują 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 1
reprezentuje:
######
#### #
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 1
powinny 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
Odpowiedzi:
CJam,
3430 bajtówDane wejściowe jako tablica w stylu CJam, dane wyjściowe jako ciąg cyfr.
Uruchom wszystkie przypadki testowe.
Oto dwa warianty innego pomysłu, ale obecnie jest on o 2 bajty dłuższy:
źródło
Python 3, 89
Wypróbuj online .
Funkcja pobiera i zwraca listę liczb całkowitych.
źródło
Rubin,
8887 bajtówWypróbuj online.
Zainspirowany odpowiedzią grc, ale w innym języku i tylko nieco krótszy.
Wyjaśnienie:
źródło
APL, 79 bajtów
Dane wejściowe jako tablica APL, dane wyjściowe jako tablica cyfr APL.
źródło
{⊃{o←⍵↑⍨z←(≢⍵)⌈a←+/⍺⋄e←z↑(-a)↑⍺[1]⍴1⋄o+0⌈o-⍨e×e⌈.+e×o}/⌽(⊂⍬),↓⍵⍴⍨⌽2,.5×≢⍵}
(Mój⍨
⊃
i1↑
dlatego dajesz sugestie, które powodują, że zaktualizowany program daje zły wynik, ale nie patronuję ci.0.5
Java 1.8,
351329 bajtówNie jestem podekscytowany tą pierwszą próbą - jestem pewien, że podwójna pętla i wszystkie te liczby całkowite.valueOf mogą być jeszcze bardziej zagrane w golfa.
Nie golfił
źródło