Malditos unos P84469


Statement
 

pdf   zip

Dada una secuencia de naturales x1xnx_1 \dots x_n entre 0 y 9, escoged como operarlos mediante sumas y productos, poniendo los paréntesis que queráis, de manera que el resultado final sea el máximo posible. Por ejemplo, para la secuencia 13209113151 \enspace 3 \enspace 2 \enspace 0 \enspace 9 \enspace 1 \enspace 1 \enspace 3 \enspace 1 \enspace 5 el máximo resultado posible es (1+3)*(2+0)*9*(1+1)*(3+1)*5=2880.(1 + 3) * (2 + 0) * 9 *(1 + 1) * (3 + 1) * 5 = 2880 \; . Fijáos que no está permitido cambiar el orden de los números dados, ni unirlos entre si para formar números de dos o más dígitos.

Entrada

La entrada consiste en diversos casos. Cada caso comienza con nn, seguida de nn números entre 0 y 9. Asumid 1n1041 \le n \le 10^4.

Salida

Para cada caso, escribid el máximo resultado posible módulo 109+710^9 + 7.

Puntuación

  • Test1:

    Resolver casos donde todas las xix_i están entre 2 y 9, como los del ejemplo 1.

  • Test2:

    Resolver casos donde n10n \le 10 y el resultado sin hacer módulos no sería superior a 10910^9, como los del ejemplo 2.

  • Test3:

    Resolver casos donde n20n \le 20 y el resultado sin hacer módulos no sería superior a 101810^{18}, como los del ejemplo 3.

  • Test4:

    Resolver casos de todo tipo.

Public test cases
  • Input

    6    2 3 4 5 6 7
    12   9 9 9 9 9 9 9 9 9 9 9 9
    

    Output

    5040
    429534507
    
  • Input

    10   1 3 2 0 9 1 1 3 1 5
    9    2 1 1 2 1 1 1 1 3
    9    3 1 1 2 1 2 1 1 3
    2    0 0
    

    Output

    2880
    108
    216
    0
    
  • Input

    15   2 1 1 1 0 2 1 1 1 0 1 1 2 2 2
    

    Output

    648
    
  • Input

    30   2 1 1 2 1 1 2 2 1 1 2 1 3 2 1 1 2 1 1 1 1 3 2 1 1 2 1 2 1 2
    

    Output

    11337408
    
  • Information
    Author
    Salvador Roura
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++