Santa membutuhkan bantuan menentukan berapa banyak elf yang akan dia perlukan untuk membantunya mengirimkan hadiah ke setiap rumah.
Batubara jauh lebih berat daripada hadiah, jadi santa akan membutuhkan tiga elf untuk setiap orang nakal di rumah. Hanya diperlukan dua elf untuk membantu santa membawa hadiah.
Pada peta santa, sebuah rumah diwakili oleh a *
, dan setiap rumah dibagi oleh a +
.
Akan ada angka di kedua sisi rumah - yang di sebelah kiri mewakili jumlah orang nakal di rumah, dan yang di sebelah kanan mewakili jumlah orang baik di rumah. Jika tidak ada angka di satu sisi itu ditafsirkan sebagai 0.
Santa tidak mengunjungi mereka yang tidak semangat natal (mereka bahkan tidak pantas mendapatkan batu bara), jadi kadang-kadang, sebuah rumah mungkin tidak memiliki nomor di kedua sisinya. Dalam hal ini, santa tidak membutuhkan bantuan elf mana pun
Misalnya, salah satu peta santa mungkin terlihat seperti ini
1*3+2*2+1*+*2
Di rumah pertama ada 1 nakal dan 3 bagus, santa akan membutuhkan sembilan elf. Dalam kedua, ada 2 nakal dan 2 bagus, santa akan membutuhkan sepuluh peri. Di rumah ketiga ada 1 nakal dan 0 bagus, santa akan membutuhkan tiga elf, dan di rumah terakhir ada 0 nakal dan 2 bagus, santa akan membutuhkan empat elf.
Ini adalah versi salah satu peta santa yang terlalu disederhanakan. Biasanya, peta santa memiliki banyak garis, dan berada dalam bentuk persegi agar lebih sesuai dengan daftar. Peta normal mungkin terlihat seperti ini (a \n
di akhir setiap baris)
1*2+*+*4+1*
2*4+3*+1*6+*
*+*+4*2+1*1
*4+*3+1*+2*3
3*10+2*+*5+*
Dalam peta ini, kebutuhan santa ((1 + 0 + 0 + 1 + 2 + 3 + 1 + 0 + 0 + 0 + 4 + 1 + 0 + 0 + 1 + 2 + 3 + 2 + 0 + 0) * 3) + ((2 + 0 + 4 + 0 + 4 + 0 + 6 + 0 + 0 + 0 + 2 + 1 + 4 + 3 + 0 + 3 + 10 + 0 + 5 + 0) * 2)
= 151 elf
Tantangan
Bantu santa menentukan berapa banyak elf yang ia butuhkan untuk mengirimkan barang ke setiap rumah!
Rumah
- Sebuah rumah diwakili oleh a
*
- Rumah dibagi oleh
+
- Angka di sebelah kiri rumah melambangkan jumlah orang nakal (tidak ada angka berarti 0)
- Angka di sebelah kanan melambangkan jumlah orang baik (tidak ada angka berarti 0)
- Mungkin ada baris baru (
\n
) di input, yang juga harus ditangani sebagai pemisahan
Peri
- Santa membutuhkan bantuan dari tiga elf untuk orang nakal (batu bara jauh lebih berat daripada hadiah)
- Santa membutuhkan bantuan dari dua peri untuk orang-orang baik
- Jika tidak ada nomor di kedua sisi, santa tidak akan mengunjungi rumah itu, dan karenanya tidak memerlukan elf
Melakukan apa
Cetak jumlah elf yang santa butuhkan untuk membantunya mengantarkan hadiah ke rumah. Karena semua yang perlu diketahui Santa adalah berapa banyak elf yang harus dibawa, Anda hanya perlu mencetak jumlah elf tambahan yang ia butuhkan untuk daftar rumah
Uji Kasus
1*1 => 5
1*2 => 7
2*1 => 8
1* => 3
*1 => 2
* => 0
1*1+1*1 => 10
1*2+2*1 => 15
1*+*1 => 5
1*1+*+1*1 => 10
*+*+*+* => 0
Aturan
- Input dapat diambil sebagai argumen dalam suatu fungsi, atau dari STDIN atau yang setara
- Outputnya bisa berupa nilai balik suatu fungsi, atau dicetak ke STDOUT atau setara
- Input hanya akan berisi angka,
+
,*
, dan baris\n
- Hasilnya seharusnya hanya jumlah total elf yang dibutuhkan bantuan Santa untuk dikirimkan pada Natal
- Celah standar berlaku
Mencetak gol
Giring Santa penuh dengan hadiah yang memberinya ruang lebih sedikit untuk menjalankan kode, jadi dia membutuhkan kode terpendek yang bisa dia dapatkan (jangan khawatir jika ini tidak masuk akal. Jika Anda mempertanyakan logika Santa, Anda akan berakhir di daftar nakal ). Karena alasan Santa yang BENAR , pengajuan terpendek dalam byte akan menang!
Papan peringkat
Ini adalah Stack Snippet yang menghasilkan leaderboard dan ikhtisar pemenang berdasarkan bahasa.
Untuk memastikan jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama menggunakan templat Penurunan harga berikut
## Language Name, N bytes
Di mana N adalah ukuran, dalam byte, dari kiriman Anda
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (misalnya, mencoret skor lama, atau menyertakan bendera dalam jumlah byte), pastikan saja skor sebenarnya adalah angka terakhir di tajuk Anda
## Language Name, <s>K</s> X + 2 = N bytes
hello-world.c
. Elf pekerja dengan bersemangat dialokasikan ke target ketika Jojodmo berkata (Saya yakin saya tahu Jojodmo, dia pasti sysadm kami) dan kemudian menggunakan panggilan balik untuk memberi tahu kapan saatnya dimasukkan kembali ke kolam giring atau ketika seorang anak melihat mereka.
max(naughty) + max(nice)
elf untuk seluruh rute? Saya pikir dia memiliki banyak peri terbang bersamanya, tetapi mungkin Anda memiliki informasi orang dalam tentang itu dan saya perlu melihat lebih dekat tahun ini. :)