Dalam tantangan ini, Anda akan menerima daftar bobot yang dipisahkan koma sebagai input, seperti
1,3,4,7,8,11
Dan Anda harus menampilkan jumlah bobot terkecil yang dapat ditambahkan ke set itu. Misalnya, output untuk set ini adalah
1,3,7
Karena Anda bisa mewakili semua bobot itu hanya dengan ketiganya:
1 = 1
3 = 3
1+3 = 4
7 = 7
1+7 = 8
1+3+7 = 11
Mungkin ada lebih dari satu solusi. Misalnya, solusi Anda untuk input 1,2bisa 1,1atau 1,2. Selama menemukan jumlah bobot minimum yang dapat mewakili set input, ini adalah solusi yang valid.
Bobot tidak boleh digunakan lebih dari sekali. Jika Anda perlu menggunakannya dua kali, Anda harus mengeluarkannya dua kali. Misalnya, 2,3bukan solusi yang valid untuk 2,3,5,7karena Anda tidak dapat menggunakan 2dua kali untuk 2+2+3=7.
Input dijamin tidak memiliki nomor duplikat.
Ini adalah kode-golf sehingga kode terpendek menurut jumlah karakter menang.
Akses jaringan dilarang (jadi tidak ada wgetsolusi "pintar" Anda @JohannesKuhn batuk batuk );)
Kasus paling sederhana:
1,5,6,9,10,14,15 => 1,5,9
7,14,15,21,22,29 => 7,14,15
4,5,6,7,9,10,11,12,13,15,16,18 => 4,5,6,7
2,3,5,7 => 2,2,3 or 2,3,7
Dan beberapa yang lebih rumit:
10,16,19,23,26,27,30,37,41,43,44,46,50,53,57,60,61,64,68,71,77,80,84,87
=> 3,7,16,27,34
20,30,36,50,56,63,66,73,79,86
=> 7,13,23,43
27,35,44,46,51,53,55,60,63,64,68,69,72,77,79,81,86,88,90,95,97,105,106,114,123,132
=> 9,18,26,37,42
7,7,7,8atas), yang meningkatkan kerumitan banyak kali.
nbobot masukan dan mmerupakan yang terbesar, sebutkan semua urutan (1..m)dan untuk setiap urutan , sebutkan setiap kombinasi antara 1 dan ncontoh masing-masing elemen urutan.)