Malheureusement, le Père Noël n'a pas pu attraper les elfes à temps! Il doit maintenant recommencer à fabriquer des cadeaux. Étant donné que les elfes ne sont certainement pas des esclaves du Père Noël, il doit déterminer les dépenses pour combien les payer.
Défi
Étant donné certaines informations pour les cadeaux, déterminez le coût de fabrication de chacun d'eux.
Chaque cadeau est placé dans une boîte en carton et emballé avec du papier d'emballage, avec un ruban enroulé autour à la fin. Le papier d'emballage est magique et ne nécessite aucun chevauchement, de sorte que la quantité de papier d'emballage utilisée est précisément équivalente à la surface de la boîte. Tous les cadeaux sont des prismes rectangulaires car de cette façon, le Père Noël peut les stocker de manière plus compacte. Le ruban circule dans les trois directions (la longueur du ruban utilisé pour l'emballage est donc égale à la somme des trois périmètres différents).
Le présent lui-même a heureusement un coût connu. Le carton coûte 1 $ le mètre carré et le papier d'emballage coûte 2 $ le mètre carré. (Astuce: vous pouvez simplement multiplier la surface par 3: P). Le ruban coûte 1 $ par mètre.
Spécifications de format
L'entrée sera donnée sous la forme d'une liste de cadeaux où chaque cadeau contient le coût de l'article réel et les trois dimensions de la boîte actuelle. Votre production doit correspondre au coût total requis.
Pour être exact, la formule pour le coût d'un seul présent avec coût de l' article c
et les dimensions x
, y
et z
est c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
.
Cas de test
[[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
Règles
- Les échappatoires standard s'appliquent
- L'entrée et la sortie peuvent être données et présentées dans n'importe quel format raisonnable
- Vous devez prendre l'entrée comme une liste de cadeaux, pas 4 listes d'attributs.
- Ceci est un code-golf , donc la réponse la plus courte en octets l'emporte
- Aucune réponse ne sera acceptée
J'espère que ce défi est plus facile que les précédents: P
Remarque: je me suis inspiré de cette série de défis d' Advent Of Code . Je n'ai aucune affiliation avec ce site
Vous pouvez voir une liste de tous les défis de la série en consultant la section 'Linked' du premier défi ici .
la source
c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
Réponses:
JavaScript (ES6), 58 octets
Cas de test
Afficher l'extrait de code
Comment?
La seule astuce utilisée ici est de factoriser (xy + xz) en x (y + z) et de réutiliser la somme (y + z) dans la dernière partie de la formule.
la source
Mathematica, 34 octets
-10 octets de @alephalpha
Essayez-le en ligne!
la source
Tr[#+6#2(+##3)+6##3+4(+##2)&@@@#]&
Gelée , 25 octets
Essayez-le en ligne!
la source
Python 3 , 56 octets
Essayez-le en ligne!
la source
C (gcc) ,
1041009993 octetsquatrecinqonze octets grâce à PrincePolka .Essayez-le en ligne!
Prend une liste d'attributs présents (longueur de liste divisible par quatre) et un entier spécifiant le nombre de cadeaux. Renvoie le coût de fabrication de tous les cadeaux.
la source
j=t=0
doit donc rester. Je n'arrivais pas à comprendre comment réorganiser le calcul pour enregistrer un octet; il serait utile que vous vous connectiez à une version complète du code avec votre golf implémenté.05AB1E , 17 octets
Essayez-le en ligne!
Explication
la source
Pyth , 39 octets
Essayez-le en ligne!
Prend l'entrée comme une représentation sous forme de chaîne d'une liste imbriquée et additionne la formule de coût.
la source
Nettoyer , 64 octets
Essayez-le en ligne!
la source
Excel, 60 octets
Entrée tirée des colonnes
A
versD
, nouvelle ligne par cadeau. Formule dans toute autre colonne.la source
))