Diberikan piramida tambahan , tentukan apakah itu bisa diselesaikan. Piramida tambahan terdiri dari lapisan , masing-masing memiliki satu nomor kurang dari yang di bawahnya. Layer dilambangkan sebagai . adalah lapisan dasar, dan adalah lapisan di atas . Jumlah dari dilambangkan sebagai . adalah angka paling kiri dari , dan adalah jumlah di sebelah kanan . Anda dapat memvisualisasikan yang berada di atas dan di tengah, maka nama "Selainpiramida".
- , yaitu setiap angka dalam piramida adalah bilangan bulat positif bukan nol.
- , yaitu, setiap angka yang bukan pada lapisan dasar piramida adalah jumlah dari dua angka di bawahnya.
- Jika memiliki angka, memiliki angka, oleh karena itu adalah angka paling kanan dari . Dalam istilah yang lebih sederhana, setiap lapisan memiliki satu angka lebih sedikit dari pada lapisan di bawahnya.
Sebuah Selain piramida puzzle adalah piramida Selain dengan beberapa nomor dihapus (diganti dengan ). Solusinya adalah penambahan piramida , di mana , yaitu angka-angka yang semula ada dalam teka-teki tidak berubah. Teka-teki semacam itu mungkin memiliki lebih dari satu solusi.
Pekerjaan Anda adalah, diberi teka-teki piramida tambahan, untuk menentukan apakah ia memiliki satu solusi.
Memasukkan
Anda bisa mendapatkan input dalam formulir berikut, tetapi konsisten:
- Array lapisan.
- Array lapisan, berbentuk seperti piramida menggunakan nilai integer non-positif yang konsisten sebagai pemisah antara elemen (hanya digunakan sekali setiap kali) serta bantalan kiri dan kanan. Pemisah dan bantalan harus sama.
- Array lapisan dengan padding kanan atau kiri valid yang konsisten (Anda harus konsisten dan tidak mencampur padding kanan dan kiri dalam kasus ini).
Harap perhatikan bahwa nilai konsisten yang bukan bilangan bulat positif mutlak harus digunakan untuk mewakili angka yang hilang; nilai ini tidak dapat digunakan sebagai bantalan. Selain itu, Anda dapat mengambil lapisan-lapisan yang disatukan (Anda masih dapat memisahkannya), dan urutannya dapat dari pangkalan ke atas atau dari atas ke pangkalan.
Keluaran
Salah satu dari dua nilai berbeda yang konsisten, di mana satu mewakili keberadaan solusi yang unik dan yang lainnya tidak adanya solusi atau ada lebih dari satu solusi.
Aturan
- akan selalu benar jika , yaitu input dijamin tidak mengandung angka di atas dua nomor lain yang bukan jumlah mereka jika ketiga angka diketahui.
- , yaitu piramida akan mengandung setidaknya satu nomor yang diketahui.
- Jangan lakukan hal-hal ini .
- Ini kode-golf , jadi jawaban terpendek menang! Namun, jangan biarkan hal itu mencegah Anda dari memposting solusi hanya karena bahasa Anda "terlalu bertele-tele".
Uji kasus
Array dengan lapisan dari atas ke dasar digunakan untuk kasus uji ini, dengan 0
mewakili .
[[10], [0, 0], [0, 2, 0], [0, 0, 0, 1]] -> True
[[32], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] -> True
[[0], [1, 1]] -> True
[[1], [0, 0]] -> False
[[10], [5, 5], [2, 3, 2], [0, 0, 0, 0]] -> False
[[5], [0, 0], [0, 0, 0]] -> False
Contoh yang berhasil
Kasing uji bekerja di sini.
Solusi unik 1
Langkah 5-6 mirip dengan 4.
Jadi di sini kami memiliki solusi unik kami.
Solusi unik 2
Langkah 1: Tidak ada pendekatan yang jelas di sini, jadi mari kita coba gunakan nilai minimum yang mungkin.
Langkah 2-5: Sepertinya nilai minimum menghasilkan solusi, oleh karena itu ini adalah satu-satunya solusi dan karena itu unik.
Petunjuk: Ada teorema tentang teka-teki piramida tambahan yang terkait dengan teka-teki ini yang dapat Anda buktikan jika Anda berpikir cukup keras.
Solusi unik 3
Ini jelas merupakan solusi yang unik.
Tidak ada solusi 1
Tidak ada solusi 2
Solusi non-unik
Dua solusi:
Karena setidaknya ada dua solusi, tidak ada solusi unik.