Leider konnte der Weihnachtsmann die Elfen nicht rechtzeitig fangen! Er muss jetzt wieder Geschenke herstellen. Da die Elfen definitiv keine Sklaven des Weihnachtsmanns sind, muss er die Kosten für die Bezahlung herausfinden.
Herausforderung
Bestimmen Sie anhand einiger Informationen für die Geschenke die Herstellungskosten für alle.
Jedes Geschenk wird in einen Karton gelegt und mit Geschenkpapier umwickelt, ganz am Ende mit einem Band umwickelt. Das Geschenkpapier ist magisch und erfordert keine Überlappung, sodass die Menge des verwendeten Geschenkpapiers genau der Oberfläche der Schachtel entspricht. Alle Geschenke sind rechteckige Prismen, da der Weihnachtsmann sie so kompakter aufbewahren kann. Das Band bewegt sich in alle drei Richtungen (die Länge des zum Umwickeln verwendeten Bandes entspricht also der Summe der drei verschiedenen Umfänge).
Die Gegenwart selbst hat zum Glück bekannte Kosten. Karton kostet 1 USD pro Quadratmeter und Geschenkpapier 2 USD pro Quadratmeter. (Hinweis: Sie können die Oberfläche einfach mit 3: P multiplizieren.) Das Band kostet 1 USD pro Meter.
Formatspezifikationen
Die Eingabe erfolgt als Liste von Geschenken, wobei jedes Geschenk die Kosten des tatsächlichen Artikels und die drei Dimensionen der Geschenkbox enthält. Ihre Ausgabe sollte die erforderlichen Gesamtkosten sein.
Um genau zu sein, die Formel für die Kosten einer einzelnen Gegenwart mit Einzelteilkosten c
und Abmessungen x
, y
und z
ist c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
.
Testfälle
[[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
Regeln
- Standardschlupflöcher gelten
- Die Eingabe und Ausgabe kann in jedem vernünftigen Format gegeben und präsentiert werden
- Sie müssen die Eingabe als Liste der Geschenke verwenden, nicht als 4 Listen der Attribute.
- Dies ist ein Code-Golf , also gewinnt die kürzeste Antwort in Bytes
- Es werden keine Antworten akzeptiert
Hoffentlich ist diese Herausforderung einfacher als die vorherigen: P.
Hinweis: Ich habe mich für diese Herausforderungsserie von Advent Of Code inspirieren lassen . Ich habe keine Verbindung zu dieser Site
Eine Liste aller Herausforderungen in der Serie finden Sie im Abschnitt "Verknüpft" der ersten Herausforderung hier .
quelle
c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
Antworten:
JavaScript (ES6), 58 Byte
Testfälle
Code-Snippet anzeigen
Wie?
Der einzige Trick, der hier verwendet wird, besteht darin, (xy + xz) als x (y + z) zu faktorisieren und die Summe (y + z) im letzten Teil der Formel wiederzuverwenden .
quelle
Mathematica, 34 Bytes
-10 Bytes von @alephalpha
Probieren Sie es online aus!
quelle
Tr[#+6#2(+##3)+6##3+4(+##2)&@@@#]&
Gelee , 25 Bytes
Probieren Sie es online aus!
quelle
Python 3 , 56 Bytes
Probieren Sie es online aus!
quelle
C (gcc) ,
1041009993 Bytesvierfünfelf Bytes dank PrincePolka .Probieren Sie es online aus!
Nimmt eine Liste der vorhandenen Attribute (durch vier teilbare Listenlänge) und eine Ganzzahl, die die Anzahl der Geschenke angibt. Gibt die Herstellungskosten aller Geschenke zurück.
quelle
j=t=0
bleiben. Ich konnte nicht ganz herausfinden, wie ich die Berechnung neu anordnen sollte, um ein Byte zu sparen. Es wäre hilfreich, wenn Sie mit Ihrem Golfspiel eine vollständige Version des Codes verknüpfen würden.05AB1E , 17 Bytes
Probieren Sie es online aus!
Erläuterung
quelle
Pyth , 39 Bytes
Probieren Sie es online aus!
Übernimmt die Eingabe als Zeichenfolgendarstellung einer verschachtelten Liste und summiert sich über die Kostenformel.
quelle
Sauber , 64 Bytes
Probieren Sie es online aus!
quelle
Excel, 60 Bytes
Eingabe aus Spalten
A
inD
, neue Zeile pro Geschenk. Formel in einer anderen Spalte.quelle
))