Sayangnya, Santa tidak dapat menangkap peri tepat waktu! Dia harus kembali ke hadiah manufaktur sekarang. Karena para elf jelas-jelas bukan budak Santa, dia harus mencari tahu berapa banyak untuk membayar mereka.
Tantangan
Diberikan beberapa informasi untuk hadiah, tentukan biaya pembuatan semuanya.
Setiap hadiah dimasukkan ke dalam kotak kardus dan dibungkus dengan kertas kado, dengan pita yang melilit di bagian paling akhir. Kertas pembungkus ajaib dan tidak membutuhkan tumpang tindih, sehingga jumlah kertas pembungkus yang digunakan tepat setara dengan luas permukaan kotak. Semua hadiah adalah prisma segi empat karena dengan cara itu Santa dapat menyimpannya dengan lebih kompak. Pita itu berputar di ketiga arah (sehingga panjang pita yang digunakan untuk pembungkus sama dengan jumlah dari tiga perimeter yang berbeda).
Untungnya, hadiah itu sendiri dikenal mahal. Kardus berharga $ 1 per meter persegi, dan kertas kado berharga $ 2 per meter persegi. (Petunjuk: Anda bisa mengalikan luas permukaan dengan 3: P). Pita harganya $ 1 per meter.
Spesifikasi Format
Input akan diberikan sebagai daftar hadiah di mana setiap hadiah berisi biaya item aktual dan tiga dimensi dari kotak ini. Output Anda harus menjadi total biaya yang diperlukan.
Tepatnya, rumus untuk biaya hadiah tunggal dengan item biaya c
dan dimensi x
, y
, dan z
adalah c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
.
Uji Kasus
[[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
Aturan
- Celah Standar Berlaku
- Input dan output dapat diberikan dan disajikan dalam format apa pun yang wajar
- Anda harus mengambil input sebagai daftar hadiah, bukan 4 daftar atribut.
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang
- Tidak ada jawaban yang akan diterima
Semoga tantangan ini lebih mudah dari yang sebelumnya: P
Catatan: Saya mendapat inspirasi untuk seri tantangan ini dari Advent Of Code . Saya tidak memiliki afiliasi dengan situs ini
Anda dapat melihat daftar semua tantangan dalam seri ini dengan melihat bagian 'Tertaut' dari tantangan pertama di sini .
sumber
c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)
Jawaban:
JavaScript (ES6), 58 byte
Uji kasus
Tampilkan cuplikan kode
Bagaimana?
Satu-satunya trik yang digunakan di sini adalah memfaktisasi (xy + xz) sebagai x (y + z) dan menggunakan kembali jumlah (y + z) di bagian terakhir rumus.
sumber
Mathematica, 34 byte
-10 byte dari @alephalpha
Cobalah online!
sumber
Tr[#+6#2(+##3)+6##3+4(+##2)&@@@#]&
Jelly , 25 byte
Cobalah online!
sumber
Python 3 , 56 byte
Cobalah online!
sumber
C (gcc) ,
1041009993 byteempatlimasebelas byte berkat PrincePolka .Cobalah online!
Mengambil daftar atribut sekarang (panjang daftar dapat dibagi empat) dan bilangan bulat yang menentukan jumlah hadiah. Mengembalikan biaya pembuatan semua hadiah.
sumber
j=t=0
harus tetap ada. Saya tidak tahu bagaimana mengatur ulang perhitungan untuk menghemat satu byte; ini akan membantu jika Anda ditautkan ke versi kode lengkap dengan golf Anda diimplementasikan.05AB1E , 17 byte
Cobalah online!
Penjelasan
sumber
Pyth , 39 byte
Cobalah online!
Mengambil input sebagai representasi string dari daftar bersarang dan menjumlahkan rumus biaya.
sumber
Bersih , 64 byte
Cobalah online!
sumber
Excel, 60 byte
Masukan diambil dari Kolom
A
keD
, baris baru per sekarang. Formula di kolom lainnya.sumber
))