Números hasta N con dígitos dados

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 11
Dificultad Difícil Algoritmos
Mostrar (3) CombinatoriaMatemáticasProgramación dinámica
Enviar solución

Puntos: 20

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

Se dan algunos dígitos del \(1\) al \(9\). Con ellos se escriben números positivos, usando cada dígito cuantas veces se quiera (por ejemplo, con \(\{1, 3\}\) se escriben \(1, 3, 11, 13, 31, 33, 111, \dots\)). Cuenta cuántos de esos números son menores o iguales que \(N\).

Entrada

La primera línea tiene la cantidad de dígitos \(d\) \((1 \le d \le 9)\) y \(N\) \((1 \le N \le 10^{18})\). La segunda tiene los \(d\) dígitos, distintos y en orden creciente.

Salida

La cantidad de números. Cabe en un entero de 64 bits.

Ejemplo 1

Entrada

4 100
1 3 5 7

Salida

20

Ejemplo 2

Entrada

3 1000000000
1 4 9

Salida

29523

Ejemplo 3

Entrada

1 8
7

Salida

1

Comentarios

No hay comentarios por el momento.