Problema número 361

Cifras y operadores

Tiempo máximo: 1,000-2,000 sMemoria máxima: 4096 KiB

Dada una secuencia de cinco números, debemos decidir si podemos colocar entre ellos operadores aritméticos de tal forma que el resultado de su aplicación de un sexto número. Los cinco números vienen en un orden que no se puede alterar.

Los operadores posibles serán la suma, resta, multiplicación y división. Esta última sólo podrá aplicarse si el resultado de la división es exacto (es decir, no tiene resto). Todos los operadores tienen la misma precedencia y se asocian de izquierda a derecha, por lo que la evaluación de la expresión se realizará de la siguiente forma:

\[(((a~op_1~b)~op_2~c)~op_3~d)~op_4~e = K\]

Como ejemplo, con los números 7 1 3 8 8 podremos conseguir el 2, ya que 2 = (7−1)/3+8−8, pero no el 66, a pesar de que 66 = (7−1)/3+8×8 pues se está dando más precedencia a la multiplicación. Tampoco podría conseguirse el 89; aunque 89 = (7+3)×8+8+1, este agrupamiento no es válido porque se ha cambiado el orden original de los números.

Entrada

La entrada consta de una serie de casos de prueba. Cada uno consta de dos líneas; la primera contiene el número objetivo y la segunda los cinco números con los que tenemos que intentar conseguir ese número objetivo. Esos cinco números estarán entre −50 y 50.

Salida

Para cada caso de prueba se mostrará una línea por cada caso de prueba. Si es posible utilizar una combinación de operadores con las condiciones anteriores para conseguir el número objetivo se escribirá SI y en caso contrario NO.

Entrada de ejemplo

2
7 1 3 8 8
66
7 1 3 8 8
82
7 1 3 8 8
82
1 8 8 7 3

Salida de ejemplo

SI
NO
NO
SI