¿Qué es?
¡Acepta el reto! es un almacén y juez en línea de problemas de programación en español que acepta soluciones en C, C++ y Java.
No es un mero listado de problemas, sino mucho más. ¡Es un corrector automático!
Si quieres poner a prueba tu habilidad programando y compararla con la de otros, ¡éste es tu sitio!
¿Por dónde empiezo?
Si no conoces este tipo de jueces, te ayudamos a resolver el primer problema para que entiendas la dinámica del uso y no cometas los errores más comunes.
Luego puedes resolver algún otro de los múltiples problemas disponibles. Si no sabes por cuál empezar, puedes recorrer las diferentes categorías o mirar el problema de la semana que te proponemos abajo. También puedes mirar lo que otros usuarios están resolviendo.
¿Aceptas el reto?
Problema de la semana
Codificación límite
El envío de mensajes cifrados para evitar miradas indiscretas se lleva estudiando desde la antigüedad. El método más simple consiste en manejar tablas de traducción que contienen, para cada letra, por qué otra letra se sustituirá en el mensaje cifrado.
Existe otro mecanismo simple que consiste en simplemente añadir caracteres aleatorios entre las letras del mensaje. El método que hoy proponemos utiliza este sistema. Además, requiere un pequeño esfuerzo adicional por parte del lector pues el mensaje recompuesto no contiene espacios separando las palabras, por lo que deberá ser él el que infiera, en el momento de leer, dónde empieza y termina cada una.
El procedimiento comienza con un mensaje cifrado como el siguiente: "xb..zu..t.u..". Ese mensaje lo interpretaremos como un árbol binario de caracteres donde el primer carácter simboliza la raíz y a continuación aparecen el hijo izquierdo y el hijo derecho, teniendo en cuenta que el árbol vacío está representado por un punto '.'. El mensaje del ejemplo representa el siguiente árbol (donde se han omitido los árboles vacíos):
El mecanismo de codificación límite lo que hace es quedarse con el límite o frontera del árbol (las hojas de izquierda a derecha), y escribirlas.