Anda telah diberi sekantong Skittles. Semua orang tahu bahwa untuk paling menghargai rasa yang berbeda, Anda perlu memutar di antara rasa.
Dasar-dasar:
- Anda hanya bisa makan 1 skittle pada satu waktu
- Urutan yang Anda makan skittle Anda harus berkala.
- Setiap periode tidak dapat mengandung rasa tertentu lebih dari sekali.
- Tas Anda hanya memiliki begitu banyak skittles. Anda tidak bisa makan lebih banyak rasa skittle tertentu daripada yang terlihat di tas Anda.
- Anda ingin makan skittles sebanyak yang Anda bisa (itu tidak selalu mungkin)
Contoh:
Katakanlah Anda mulai dengan 3 skittle Merah, 2 Biru, dan 3 Hijau:
R B G R B G R G Invalid: The last R must be followed by a B, not a G
R B G R B G R Valid, but sub-optimal
R R R Valid, but sub-optimal
R G B R G B R G Valid and optimal
G R B G R B G R Also valid and optimal (there are multiple good solutions)
Input output
- Anda diberikan daftar bilangan bulat positif yang tidak kosong untuk jumlah warna. (Contoh di atas adalah
[3,2,3]). - Anda harus mengembalikan daftar berisi pemesanan yang valid dan optimal.
- Alih-alih menggunakan warna, Anda akan menggunakan indeks dari daftar input. (Contoh keluaran terakhir di atas adalah
[2,0,1,2,0,1,2,0]). - Output Anda mungkin 0-diindeks atau 1-diindeks. Contoh saya akan diindeks 0
Uji Kasus
1 0
4 0 0 0 0
4 1 0 0 0 0
3 1 0 1 0 or 0 0 0
5 2 2 0 1 2 0 1 2 0
2 3 5 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2
2 4 5 2 1 2 1 2 1 2 1 2
3 4 5 2 1 0 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2 0 1 2
1 1 1 1 1 6 5 0 1 2 3 4 5 (lots of other solutions)
1 1 1 1 1 8 5 5 5 5 5 5 5 5
2 4 6 8 3 2 1 3 2 1 3 2 1 3 2 1 3 2
Ini adalah kode-golf , jadi buat solusi Anda sesingkat mungkin dalam bahasa favorit Anda!