Diberikan daftar pekerjaan, yang harus dilakukan secara berurutan, dengan masing-masing mengambil slot untuk dilakukan, berapa lama waktu yang dibutuhkan untuk melakukan semuanya jika setelah melakukan pekerjaan, pekerjaan yang sama tidak dapat dilakukan untuk dua slot berikutnya (mendinginkan slot )? Namun, pekerjaan yang berbeda dapat ditugaskan dalam slot pendinginan ini.
Sebagai contoh,
[9,10,9,8] => output: 5
Karena pekerjaan akan dialokasikan sebagai [9 10 _ 9 8]
.
1. Pertama, 9 membutuhkan dua titik pendinginan _ _. Jadi kita mulai dengan 9 _ _
.
2. Pekerjaan berikutnya 10 berbeda dari pekerjaan sebelumnya 9, jadi kami dapat mengalokasikan salah satu dari _ _. Maka kita akan punya 9 10 _
.
3. Ketiga, 9 tidak dapat dialokasikan sekarang, karena pekerjaan pertama 9 adalah pekerjaan yang sama dan perlu pendinginan waktu. 9 10 _ 9
.
4. Terakhir, 8 tidak sama dengan dua pekerjaan sebelumnya lainnya, sehingga dapat dialokasikan setelah 9 dan karena ini adalah pekerjaan terakhir, tidak perlu pendinginan waktu. Daftar akhir adalah 9 10 _ 9 8
dan output yang diharapkan adalah 5, yang merupakan jumlah tempat (atau jumlah slot)
Kasus uji:
[1,2,3,4,5,6,7,8,9,10] => output : 10 ([1 2 3 4 5 6 7 8 9 10])
[1,1,1] => output: 7 ([1 _ _ 1 _ _ 1])
[3,4,4,3] => output: 6 ([3 4 _ _ 4 3])
[3,4,5,3] => output: 4 ([3 4 5 3])
[3,4,3,4] => output : 5 ([3 4 _ 3 4])
[3,3,4,4] => output : 8 ([3 _ _ 3 4 _ _ 4])
[3,3,4,3] => output : 7 ([3 _ _ 3 4 _ 3])
[3,2,1,3,-4] => output : 5 ([3 2 1 3 -4])
[] => output : 0 ([])
[-1,-1] => output : 4 ([-1 _ _ -1])
Nilai input dapat berupa bilangan bulat apa saja (negatif, 0, positif). Panjang daftar pekerjaan adalah 0 <= panjang <= 1.000.000.
Output akan berupa integer, jumlah total slot, yang ditunjukkan dalam test case sebagai output. Daftar di dalam tanda kurung adalah bagaimana output akan dihasilkan.
Memenangkan kriteria
kode-golf
[]
?