En este desafío, recibirá una lista de pesos separados por comas como entrada, como
1,3,4,7,8,11
Y debe generar la menor cantidad de pesos que pueda agregar a ese conjunto. Por ejemplo, la salida para este conjunto sería
1,3,7
Porque podrías representar todos esos pesos con solo esos tres:
1 = 1
3 = 3
1+3 = 4
7 = 7
1+7 = 8
1+3+7 = 11
Puede haber más de una solución. Por ejemplo, su solución para la entrada 1,2podría ser 1,1o 1,2. Siempre que encuentre la cantidad mínima de pesos que puede representar el conjunto de entrada, es una solución válida.
Las pesas no se pueden usar más de una vez. Si necesita usar uno dos veces, debe generarlo dos veces. Por ejemplo, 2,3no es una solución válida 2,3,5,7porque no puede usar el 2doble para 2+2+3=7.
Se garantiza que la entrada no tenga números duplicados.
Esto es código-golf entonces el código más corto por conteo de caracteres gana.
El acceso a la red está prohibido (por lo que ninguna de sus wgetsoluciones "inteligentes" @JohannesKuhn tose tos );)
Casos más simples:
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
Y algunos más complicados:
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,8arriba), lo que aumenta la complejidad muchas veces.
npesos de entrada y mes el más grande, enumere todas las subsecuencias de (1..m)y para cada subsecuencia, enumere cada combinación de entre 1 e ninstancias de cada elemento de la secuencia.)