Subsecuencia de suma más cercana

Tiempo límite 3 s
Memoria límite 256 MB
Casos de prueba 12
Enviar solución

Puntos: 20

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

Dado un arreglo de \(n\) enteros y un objetivo \(g\), elige una subsecuencia (cualquier subconjunto de posiciones, incluso vacío) cuya suma \(s\) deje \(|s - g|\) lo más chico posible. Imprime ese mínimo.

Con \(n = 40\) hay \(2^{40}\) subconjuntos: no se pueden probar todos.

Entrada

La primera línea tiene \(n\) \((1 \le n \le 40)\) y \(g\) \((|g| \le 10^9)\). La segunda tiene los \(n\) enteros, con \(|a_i| \le 10^7\).

Salida

El menor valor posible de \(|s - g|\).

Ejemplo 1

Entrada

4 6
5 -7 3 5

Salida

0

Ejemplo 2

Entrada

3 -5
7 -9 15

Salida

3

Ejemplo 3

Entrada

3 10
1 2 3

Salida

4

Comentarios

No hay comentarios por el momento.