La secuencia correcta.


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 16M

Author:
Problem type
Allowed languages
C, C#, C++, Java, JS, Pascal, Python, VB

Una secuencia de dígitos se obtiene escribiendo los dígitos de todos los enteros consecutivamente comenzando con 1 y continuando hasta N de la siguiente manera: 12345678910111213141516171819202122 ... etc. Escriba un programa que calcule el número de dígitos en tal secuencia.

Entrada

La primera y única línea de la entrada contiene un entero N, 1 \leq N \leq 100,000,000.

Salida

La primera y única línea de la salida debe contener el número de dígitos en una secuencia determinada por el número dado en la entrada.

Ejemplo #1 de Entrada

15

Ejemplo #1 de Salida

21

Ejemplo #2 de Entrada

120

Ejemplo #2 de Salida

252

Comments


  • 5
    Jose_Ernesto  commented on Jan. 6, 2024, 8:29 p.m.

    alguien podria explicarme como hacer este ejercicio de forma optima


    • -2
      Ahmed05  commented on Jan. 6, 2024, 11:32 p.m.

      Definamos cnt[x] como la cantidad de números menores o iguales que N que tienen x dígitos. La respuesta sería la sumatoria de x*cnt[x] para (1<=x<=8). cnt[x] se puede calcular en tiempo constante con un poco de matemática.


      • -1
        zagaro  commented on April 30, 2024, 7:42 p.m.

        manco


        • -1
          zagaro  commented on April 30, 2024, 7:43 p.m.

          soy manco, pero con fuerza bruta se sacaba facil