Invertir un entero

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 6
Dificultad Medio Algoritmos
Mostrar (1) Matemáticas
Enviar solución

Puntos: 10

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

Dado un entero con signo de 32 bits \(x\), invierte el orden de sus dígitos conservando el signo (los ceros que quedan a la izquierda desaparecen: \(120\) se vuelve \(21\)). Si el resultado se sale del rango \([-2^{31}, 2^{31} - 1]\), la respuesta es \(0\).

Seguimiento: resuélvelo suponiendo que no puedes usar enteros de 64 bits; detecta el desborde antes de que ocurra.

Entrada

La primera línea tiene \(T\) \((1 \le T \le 10^4)\). Cada una de las siguientes \(T\) líneas tiene un entero \(x\), con \(-2^{31} \le x \le 2^{31} - 1\).

Salida

Para cada \(x\), una línea con el entero invertido o \(0\) si se desborda.

Ejemplo 1

Entrada

3
123
-123
120

Salida

321
-321
21

Ejemplo 2

Entrada

3
0
1534236469
-2147483648

Salida

0
0
0

Comentarios

No hay comentarios por el momento.