Berkat komunitas PPCG, Santa berhasil menyortir hadiahnya ke dalam urutan yang benar untuk pindah ke dermaga transportasi. Sayangnya, tanda-tanda dermaga transportasi rusak sehingga dia tidak tahu di mana harus meletakkan semua hadiah! Hadiah-hadiah tersebut semuanya dikelompokkan bersama dan bukan berdasarkan kisarannya, yang diakui Santa akan merupakan ide yang lebih baik.
Sekarang, mengingat hadiah dalam urutan yang diurutkan, tentukan semua konfigurasi rentang minimal yang mungkin yang akan menghasilkan saat ini berada dalam urutan yang benar. Artinya, temukan semua konfigurasi rentang minimal sedemikian rupa sehingga pengurutan hadiah menurut algoritma di Tantangan # 5 tidak akan mengubah urutan.
Tantangan
Konfigurasi rentang minimal adalah daftar rentang sehingga rentang masing-masing sekecil mungkin. Yaitu, jika rentang ditetapkan untuk mencakup subset tertentu dari hadiah, maka minimum dan maksimum kisaran harus sama dengan rentang dari subset tersebut. Dengan kata lain, mengecilkan kisaran di penutup akan menyebabkannya tidak lagi menjadi penutup.
Tantangannya adalah menemukan semua konfigurasi rentang minimal yang mungkin yang berlaku untuk ukuran saat ini. Mari kita ambil contoh:[3, 1, 2, 5, 4, 7, 6]
Ada kasus sepele, yaitu mengambil kisaran seluruh konfigurasi yang ada. Dalam hal ini, [[1, 7]]
akan menjadi solusi.
Untuk contoh dengan elemen unik, case sepele lainnya adalah [[3], [1], [2], [5], [4], [7], [6]]
(karena rentang tidak perlu dipesan).
Untuk contoh ini, kita juga melihat itu [[1, 3], [4, 7]]
dan [[1, 3], [4, 5], [6, 7]]
akan berhasil, juga [[1, 3], [5], [4], [6, 7]]
dan [[1, 3], [4, 5], [7], [6]]
.
Jawaban [3, 1, 2, 5, 4, 7, 6]
akhirnya adalah [[[3], [1], [2], [5], [4], [7], [6]], [[3], [1], [2], [5], [4], [6, 7]], [[3], [1], [2], [4, 5], [7], [6]], [[3], [1], [2], [4, 5], [6, 7]], [[3], [1], [2], [4, 7]], [[3], [1, 2], [5], [4], [7], [6]], [[3], [1, 2], [5], [4], [6, 7]], [[3], [1, 2], [4, 5], [7], [6]], [[3], [1, 2], [4, 5], [6, 7]], [[3], [1, 2], [4, 7]], [[1, 3], [5], [4], [7], [6]], [[1, 3], [5], [4], [6, 7]], [[1, 3], [4, 5], [7], [6]], [[1, 3], [4, 5], [6, 7]], [[1, 3], [4, 7]], [[1, 5], [7], [6]], [[1, 5], [6, 7]], [[1, 7]]]
.
Spesifikasi Format
Input akan diberikan sebagai daftar datar bilangan bulat positif dalam rentang angka yang didukung bahasa Anda yang wajar dalam format apa pun yang masuk akal. Input mungkin mengandung elemen duplikat. Output harus diberikan sebagai daftar 3D bilangan bulat positif dalam format apa pun yang masuk akal.
Setiap rentang dalam output Anda (yang berada di lapisan kedua) dapat direpresentasikan sebagai [min, max]
, [num]
jika rentang nilai tunggal, atau sebagai seluruh rentang itu sendiri, tetapi format output Anda harus konsisten. Silakan tentukan jika Anda ingin menggunakan format output masuk akal yang sedikit berbeda.
Nilai duplikat harus dicakup oleh rentang tunggal dalam output; artinya, tidak ada dua rentang dalam output mungkin memiliki tumpang tindih.
Solusi Anda dapat mengembalikan rentang dalam urutan apa pun dan ini tidak harus bersifat deterministik.
Aturan
- Celah Standar Berlaku
- Ini adalah kode-golf sehingga jawaban tersingkat dalam byte menang
- Tidak ada jawaban yang akan diterima
Test Case untuk daftar dengan elemen duplikat:
2 3 2 4 -> [[[2, 3], [4]], [[2, 4]]]
Implementasi Referensi
Header adalah tautannya.
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 .
Selamat bermain golf!