Noticias:

Cientoseis es un foro sobre..., bueno, trata de... Consiste en lanzar aros

Menú Principal

Code-ate! Primer Concurso de Programación de 106

Iniciado por Bill, 01 de Agosto de 2012, 17:24

0 Miembros y 1 Visitante están viendo este tema.

Ydrojen


Bill

#21
Prueba 1:

Descripción

Una compañía bancaria tiene un sistema de seguridad online muy curioso. Ofrece a sus usuarios una tarjeta con una contraseña muy larga, de caracteres alfanuméricos, en la que no se repiten caracteres dentro de la contraseña. Pedir la contraseña al usuario tendría dos problemas: que el usuario tendría que meter muchos caracteres, y que además al enviar la contraseña crea una debilidad en el sistema. Por ello, la web online del banco lo que hace es pedirle 3 caracteres de la contraseña, indicándole las posiciones de los mismos (las tres diferentes). Pero han cometido un error, y es que los piden en orden.

Has instalado un keylogger en la máquina de un cliente, y te llegan los conjuntos de 3 letras. Ahora solamente te falta realizar un programa que te devuelva las posibles contraseñas, en orden alfabético.

Notas:

Caracteres válidos: [A..Z, a..z, 0..9]
Dar por supuesto que se han tomado suficientes muestras como para poseer todos los caracteres posibles de la contraseña.
Las contraseñas estarán en un fichero "input.txt" en el mismo directorio que el ejecutable.
Las respuestas se guardarán en un fichero "output.txt" en el mismo directorio que el ejecutable.
No se aceptará ningún ejecutable que no pase al menos los unit tests adjuntos en la prueba.
Es posible que no exista solucion, en cuyo caso el output.txt deberá estar vacío.
Tenéis de tiempo hasta el viernes 7 de agosto a las 23:59.
El código debe adjuntarse en un zip junto con el ejecutable generado, y enviadme por MP un link para descargarme el zip. Una vez enviado, es el definitivo, no hay posibilidad de cambios o volver a enviar.

Unit Tests

Citar
Unit Test 1

Input:

CSe
iEo
ToS
nTo
iEn
Cie
SeI
iEe
ESe
ToI
EIs

Output:

CiEnToSeIs

Citar
Unit Test 2

Input:

Eos
SeI
CEs
EnT
iEI
Cie
Tes
ToS

Output:

CiEnToSeIs
CiEnToSesI

Citar
Unit Test 3

Input:

Cos
Eoe
Ces
iEn
nTS
Cin
SeI

Output:

CiEnoTSeIs
CiEnoTSesI
CiEnToSeIs
CiEnToSesI
CiEnTSoeIs
CiEnTSoesI
CiEonTSeIs
CiEonTSesI

Citar
Unit Test 4

Input:

MaN
zAn
NzO

Output:

MaNzAnO
MaNzAOn
MaNzOAn

Citar
Unit Test 5

Input:

B2C
a1b
1Dd
BcD
1Cc
1Bd
a2D
1b4
Aa2
Aab
3d4
ADd
Ab3

Output:

Aa1B2b3CcDd4
Aa1B2bC3cDd4
Aa1B2bCc3Dd4
Aa1B2bCcD3d4
Aa1B2Cb3cDd4
Aa1B2Cbc3Dd4
Aa1B2CbcD3d4
Aa1B2Ccb3Dd4
Aa1B2CcbD3d4
Aa1B2CcDb3d4
Aa1b3B2CcDd4
Aa1Bb23CcDd4
Aa1Bb2C3cDd4
Aa1Bb2Cc3Dd4
Aa1Bb2CcD3d4
Aa1Bb32CcDd4

Ydrojen

#22
No entiendo como va algunos output, me explicas por ejemplo este como va?

Citar
Unit Test 4

Input:

MaN
zAn
NzO

Output:

MaNzAnO
MaNzAOn
MaNzOAn

Según entiendo deberían ser 2 out: MaNZOzAn y zAnMaNZO

EDIT: Nop, me liao y las dos zetas son minusculas asi que tampoco serian esos out que he dicho

Bill

Supón que la contraseña original era "MaNzAnO".

1234567
MaNzAnO

Al usuario le han pedido la contraseña 3 veces, y las has capturado, en concreto:
1) Letras 1, 2 y 3 => capturas MaN
2) Letras 4, 5 y 6 => capturas zAn
3) Letras 3, 4 y 7 => capturas NzO

Tú estás suponiendo que siempre piden letras consecutivas, y no es así. Eso sería demasiado fácil.


Maik

¿Se supone que es un jueguecillo simple de adivinar cual es la letra que va antes que otra, no?

Mime

Me he entretenido en ver este hilo por curiosidad, y me surge una duda.

Peluche, estás intentando desmontar el sistema de seguridad del Santander o que?  :gñe:

Perdón por la intromisión.

Bill

El sistema CES del santander está más que desmontado  :lol: Solamente es un poquito de seguridad más para el comercio electrónico, pero es inseguro a tope. Son más seguras las tarjetas de coordenadas, por ejemplo LaCaixa usa este sistema, te envía una tarjeta con 60 coordenadas de 4 cifras cada una.

En cuanto al concurso, solamente está participando Ydrojen, así que supongo que el viernes le tendré que declarar ganador del concurso por abandono de todos los demás participantes  :lol:

Bill

Cita de: Mike en 02 de Septiembre de 2012, 00:12
¿Se supone que es un jueguecillo simple de adivinar cual es la letra que va antes que otra, no?

Sí y no. Sería un jueguecillo simple si la solución a ofrecer fuese única. Al no ser una solución única, tienes que calcular además las permutaciones de soluciones posibles. Pero vamos, si es simple, entonces estoy esperando tu solución a mi MP ;)

Ydrojen

Hombre, espero que alguno más sea capaz de hacer algo, que ganar tan pronto es aburrido :lol:

Faerindel

Estamous en ellou. Que me estoy enrollando como una persiana y seguramente esté mirando 11k métodos más complicados, pero bueno. :lol:

Últimos mensajes

¿Qué manga estás leyendo? de M.Rajoy
[Ayer a las 11:54]


Gran Guía de los Usuarios de 106 de M.Rajoy
[25 de Abril de 2024, 07:20]


Adivina la película de M.Rajoy
[25 de Abril de 2024, 07:04]


Felicidades de M.Rajoy
[15 de Abril de 2024, 13:54]


Marvel Cinematic Universe de M.Rajoy
[15 de Abril de 2024, 08:52]