Considere una variedad A
de longitud n
. La matriz contiene solo enteros positivos. Por ejemplo A = (1,1,2,2)
. Definamos f(A)
como el conjunto de sumas de todos los subconjuntos contiguos no vacíos de A
. En este caso f(A) = {1,2,3,4,5,6}
. Los pasos para producir f(A)
son los siguientes:
Las submatrices de A
son (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
. Sus sumas respectivas son 1,1,2,2,2,3,4,4,5,6
. El conjunto que obtienes de esta lista es por lo tanto {1,2,3,4,5,6}
.
Tarea
Dado un conjunto de sumas S
dadas en orden ordenado que contiene solo enteros positivos y una longitud de matriz n
, su tarea es generar al menos una matriz de X
tal manera f(X) = S
.
Por ejemplo, si S = {1,2,3,5,6}
y n = 3
luego es una salida válida X = (1,2,3)
.
Si no existe dicha matriz, X
su código debería generar un valor constante.
Ejemplos
Entrada: n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)
salida posible:X = (3, 5, 1, 4)
Entrada: n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)
salida posible:X = (5, 3, 2, 2, 5, 5)
Entrada: n=6, S = (2, 4, 6, 8, 10, 12, 16)
salida posible:X = (4, 2, 2, 2, 2, 4)
Entrada: n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)
salida posible:X = (4, 2, 1, 1, 2, 4)
Entrada: n=10, S = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25)
, posible salida: X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5)
.
Entrada: n=15, S = (1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31)
, posible salida: X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3)
.
Formato de entrada y salida.
Su código puede recibir entrada y salida en cualquier formato de lectura humana que le resulte conveniente. Sin embargo, muestre el resultado de probarlo en los ejemplos de la pregunta.
Tiempo de ejecución
Debe poder ejecutar el código hasta su finalización para todos los ejemplos en la pregunta. En principio, debería ser correcto n
, 15
pero no es necesario demostrar que sería lo suficientemente rápido para todas las entradas.