Enviar | Todos los envÃos | Mejores soluciones | Atrás a la lista |
ODI15E01 - Seguridad de Tarjetas de Crédito |
El padre de Isabel quiere fomentar el sentido de responsabilidad en ella. Es por eso que le ha delegado el pago de algunos servicios de la casa. En el día de hoy, Isabel es quien paga la luz y el agua en su casa. Afortunadamente estos servicios se pagan vía telefónica, por lo que ella puede hacer todo desde la casa.
Por supuesto, Isabel tiene sólo 14 años y no trabaja: su padre le deja anotado su número de tarjeta de crédito en un papel. El número de tarjeta de crédito cuenta con 16 dígitos agrupados en grupos de 4, por ejemplo:
1234 5678 9123 4567
Para proteger este número, Isabel y su padre formularon un protocolo de seguridad que ha de despistar a los husmeadores. Este protocolo de seguridad cuenta de dos pasos:
-
Invertir los dígitos de cada uno de los 4 grupos.
-
Desplazar circularmente hacia la derecha los grupos un total de K veces.
Se dice que que el protocolo es exitoso si luego de efectuarse sobre una tarjeta de crédito, este produce un número de tarjeta de crédito distinto al original. Dados (a) un número de tarjeta de crédito y (b) el coeficiente de desplazamiento K, escriba un programa que determine si el protocolo es exitoso.
Entrada
La entrada para este problema se provee en una sola línea. La línea empieza con una cadena de 16 dígitos tomados entre el 0 y el 9. Luego habrá un espacio en blanco, y luego K (1 ≤ K ≤ 2 ⋅ 1018).
Salida
Imprime dos líneas. En la primera línea, imprime el número de tarjeta de crédito resultante luego de efectuar los pasos del protocolo en la tarjeta de crédito del padre de Isabel. En la segunda línea, imprime "SI" si el protocolo es exitoso, o "NO" de lo contrario. En ningún caso incluyas comillas (") en la salida estándar.
Ejemplos
Ejemplo #1
Entrada |
1234567891234567 1 |
Salida |
7654432187653219 SI |
Ejemplo #2
Entrada |
1111111111111111 2 |
Salida |
1111111111111111 NO |
Adicionado por: | kojak_ |
Fecha: | 2015-04-09 |
Tiempo lÃmite: | 2s |
LÃmite del código fuente: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Lenguajes: | C CSHARP C++ 4.3.2 CPP PAS-GPC PAS-FPC PYTHON PYTHON3 |
Fuente: | Olimpiada Dominicana de Informática 2015 |