¿Por qué no se acepta mi solución para SPOJ.com – JUEGOS de problemas?

Encontré varios problemas con su código:

  1. Está utilizando long int para almacenar el promedio multiplicado con una potencia apropiada de 10. long int tiene el mismo rango que int y se desbordará (el número puede ser hasta 10 ^ 10). Debes usar long long int.
  2. Está convirtiendo la representación de cadena del número en flotante. El flotador tiene una precisión menor que el doble, pero incluso la conversión a doble dará una respuesta incorrecta aquí porque no podemos estar seguros de cómo se representará (0.0001 podría representarse como 0.000099999). En su lugar, debe eliminar el punto (.) De la representación de la cadena, mover los lugares decimales hacia adelante y luego convertirlos a largos largos.
  3. Aunque, esto no se refiere a la corrección de su programa, pero no necesita asignar tanta memoria a las cadenas s. El valor máximo de avg es 10 ^ 6 no 10 ^ 1000000. Algo así como 15 caracteres es más que suficiente.

Aquí está mi solución de Python aceptada:

def gcd (a, b): devuelve a if b == 0 más gcd (b, a% b)

T = int (raw_input ())
para _ en xrange (T):
avg = raw_input ()
pos = avg.find (‘.’)
si pos == -1:
imprimir 1
continuar
pow10 = 10 ** (len (promedio) -pos-1)
puntaje = int (promedio [: pos] + promedio [pos + 1:])
imprimir pow10 / gcd (pow10, puntaje)

More Interesting

¿Cuál es el secreto de escribir buenos algoritmos?

¿Dónde se puede encontrar una implementación de árbol de sufijos de la subcadena común más larga?

Cómo demostrar que la mochila continua con elementos de opción múltiple es un problema NP-difícil

¿Cuál es el mejor algoritmo para implementar la función next_permutation sin STL?

¿Qué consejo le da Ashish Kedia al estudiante de ingeniería de software de último año que no es un buen programador para convertirse en un gran ingeniero? Aprobé las asignaturas, pero no tomé ninguna clase de algo, y mis habilidades para resolver problemas son bajas.

¿Cuáles son las opciones de carrera en ingeniería informática?

¿Cuál es la complejidad temporal del uso de un árbol de búsqueda binario para ordenar los números de un grupo?

¿Cómo ordenar una matriz de enteros proporcionados como una cadena como entrada desde la línea de comandos, usando lenguaje C?

¿Cómo Thomas Cormen y sus coautores generaron el índice para su libro clásico de algoritmos?

¿Es realmente necesario que un programador aprenda estructuras de datos y algoritmos?

¿Es necesario aprender Java antes de comenzar el curso de Estructuras de datos y Algoritmos en el IIT en Delhi?

¿Por qué el ordenamiento rápido se denomina 'rápido' incluso cuando tiene complejidad O (n2) en el peor de los casos?

Cómo entender algoritmos en lenguajes de programación

¿En qué situación no debemos usar la tabla Hash?

¿Se puede implementar un mapa usando Tree? ¿Se puede implementar un mapa usando List? Esto es específico de Java, pero me gustaría conocer el enfoque general.