¿Cuál es el problema con mi código de C ++ para SPOJ.com – Problema PALIN?

Bueno, si lees la pregunta correctamente, dice que:

dado entero positivo K de no más de 1000000 dígitos

largo entero largo puede contener solo hasta 19 dígitos. Además, el algoritmo que está utilizando es demasiado lento. Siempre dará TLE.

Aquí hay algunos consejos:

  • Representa el número usando cadenas
  • Mire la cadena y vea si puede modificar algún dígito en ella para convertirla en un palíndromo. Hazlo de tal manera que el resultado sea mayor que los números originales.

Por ejemplo: 1443
cambie los últimos 3 a 1 y el medio a 4’s a 5.
Por lo tanto, 1551 es la respuesta.

Otro ejemplo:
16543
Cambie los últimos 3 a 1 y desde 3 <1, incremente el dígito anterior
16551
Cambiar los últimos 5 a 6
16561

Esto es para mostrar la idea base. El algoritmo es bastante fácil en realidad. * Imagen reflejada * 😉 Solo necesita ocuparse de algunos casos especiales (como establecer el dígito medio a 0 a veces). No voy a contar todo, porque eso no sería útil. Pruébalo y si todavía tienes problemas, no dudes en enviarme un mensaje privado. Buena suerte 🙂

En primer lugar, en la descripción del problema está escrito que “Para un entero positivo K dado de no más de 1000000 dígitos”, significa que no puede tomar la entrada por tanto tiempo int. Tienes que considerarlo como una cadena y luego proceder.