Niestety, Mikołajowi nie udało się złapać elfów na czas! Musi teraz wrócić do produkcji prezentów. Ponieważ elfy zdecydowanie nie są niewolnikami Świętego Mikołaja, musi obliczyć wydatki za ich zapłacenie.
Wyzwanie
Biorąc pod uwagę pewne informacje dotyczące prezentów, określ koszt ich wytworzenia.
Każdy prezent jest pakowany w pudełko tekturowe i owinięty papierem do pakowania, a na samym końcu owinięty jest wstążką. Papier do pakowania jest magiczny i nie wymaga nakładania się, więc ilość użytego papieru do pakowania jest dokładnie równa powierzchni pudełka. Wszystkie prezenty są prostokątnymi pryzmatami, ponieważ w ten sposób Święty Mikołaj może przechowywać je bardziej kompaktowo. Wstążka porusza się we wszystkich trzech kierunkach (więc długość wstążki używanej do owijania jest równa sumie trzech różnych obwodów).
Na szczęście sam prezent ma znany koszt. Tektura kosztuje 1 USD za metr kwadratowy, a papier do pakowania kosztuje 2 USD za metr kwadratowy. (Wskazówka: Możesz po prostu pomnożyć powierzchnię przez 3: P). Wstążka kosztuje 1 USD za metr.
Specyfikacja formatu
Dane wejściowe zostaną podane jako lista prezentów, gdzie każdy prezent zawiera koszt rzeczywistej pozycji i trzy wymiary obecnego pudełka. Twój wynik powinien być wymaganym całkowitym kosztem.
A dokładniej, wzór na koszt jednego obecne w tym elemencie c
i wymiarach x
, y
i z
jest c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
.
Przypadki testowe
[[7, 8, 6, 7], [7, 7, 5, 5], [8, 9, 6, 7], [6, 5, 10, 10], [5, 9, 6, 7], [9, 9, 10, 6], [8, 10, 10, 6], [6, 5, 7, 9], [7, 10, 8, 8], [5, 9, 9, 10]] -> 11866
[[5, 10, 8, 9], [8, 8, 5, 8], [8, 7, 7, 6], [5, 9, 9, 10], [9, 7, 5, 8], [9, 8, 9, 5], [7, 5, 6, 7], [5, 7, 6, 10]] -> 8854
[[9, 8, 8, 8], [10, 9, 8, 5], [10, 7, 5, 5], [10, 10, 6, 6], [8, 5, 8, 7]] -> 4853
[[7, 7, 8, 10], [8, 10, 7, 8], [9, 7, 7, 8], [8, 5, 10, 5], [6, 6, 6, 8], [8, 9, 7, 5], [8, 5, 6, 5], [7, 9, 8, 5], [10, 10, 10, 8]] -> 9717
[[5, 8, 9, 7], [5, 8, 7, 10], [5, 7, 7, 6], [5, 5, 5, 6], [9, 9, 5, 7], [5, 6, 7, 8], [8, 5, 8, 7], [6, 9, 5, 5], [10, 10, 9, 10]] -> 9418
[[9, 9, 7, 10], [5, 8, 7, 9], [5, 5, 9, 8], [10, 5, 9, 10], [8, 5, 10, 7], [8, 9, 5, 5], [5, 10, 6, 10]] -> 8178
[[5, 9, 5, 8], [7, 8, 10, 6], [7, 10, 7, 10], [8, 9, 7, 5], [5, 7, 8, 6], [9, 9, 6, 10], [6, 5, 9, 9], [7, 9, 9, 9]] -> 9766
[[7, 10, 5, 10], [8, 10, 8, 9], [8, 6, 7, 8], [6, 9, 8, 5], [6, 7, 10, 9], [7, 6, 5, 8]] -> 7118
[[10, 6, 7, 5], [5, 9, 5, 9], [9, 7, 8, 5], [6, 6, 9, 9], [9, 9, 6, 9], [10, 5, 8, 9], [7, 5, 6, 10], [9, 10, 5, 5]] -> 8007
[[8, 10, 7, 8], [9, 10, 5, 8], [6, 7, 5, 6], [10, 10, 9, 8], [7, 5, 8, 9], [10, 10, 6, 7], [10, 8, 9, 10], [5, 10, 5, 5]] -> 9331
Zasady
- Obowiązują standardowe luki
- Dane wejściowe i wyjściowe mogą być podawane i prezentowane w dowolnym rozsądnym formacie
- Musisz wziąć dane wejściowe jako listę prezentów, a nie 4 listy atrybutów.
- To jest golf-golf, więc wygrywa najkrótsza odpowiedź w bajtach
- Żadne odpowiedzi nie będą akceptowane
Mam nadzieję, że to wyzwanie jest łatwiejsze niż poprzednie: P
Uwaga: Inspirację do tej serii wyzwań czerpałem z Advent Of Code . Nie mam powiązań z tą stroną
Możesz zobaczyć listę wszystkich wyzwań w serii, patrząc na sekcję „Połączone” pierwszego wyzwania tutaj .
źródło
c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
Odpowiedzi:
JavaScript (ES6), 58 bajtów
Przypadki testowe
Pokaż fragment kodu
W jaki sposób?
Jedyną sztuczką stosowaną tutaj jest faktoryzacja (xy + xz) jako x (y + z) i ponowne użycie sumy (y + z) w ostatniej części formuły.
źródło
Mathematica, 34 bajty
-10 bajtów od @alephalpha
Wypróbuj online!
źródło
Tr[#+6#2(+##3)+6##3+4(+##2)&@@@#]&
Galaretka , 25 bajtów
Wypróbuj online!
źródło
Python 3 , 56 bajtów
Wypróbuj online!
źródło
C (gcc) ,
1041009993 bajtówczterypięćjedenaście bajtów dzięki PrincePolka .Wypróbuj online!
Pobiera listę obecnych atrybutów (długość listy dzieli się przez cztery) i liczbę całkowitą określającą liczbę prezentów. Zwraca koszt wytworzenia wszystkich prezentów.
źródło
j=t=0
musi pozostać. Nie mogłem do końca wymyślić, jak zmienić kolejność obliczeń, aby zaoszczędzić bajt; pomogłoby to, gdybyś połączył się z pełną wersją kodu ze swoim golfem.05AB1E , 17 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Pyth , 39 bajtów
Wypróbuj online!
Pobiera dane wejściowe jako ciąg znaków reprezentujący zagnieżdżoną listę i sumuje nad formułą kosztu.
źródło
Czysty , 64 bajty
Wypróbuj online!
źródło
Excel, 60 bajtów
Dane wejściowe pobrane z kolumn
A
doD
, nowy wiersz na prezent. Formuła w dowolnej innej kolumnie.źródło
))