post

PROYECTO BABEL

Clasificación: Confidencial | Objetivo: Recuperar el sistema central.

proyecto babel

Año 2026. Los servidores principales del Instituto Universitario de Yucatán (IUDY) han sido encriptados por un sistema heredado autónomo conocido como “El Arquitecto”. No es un virus común; es un programa antiguo que ha olvidado ¿cómo comunicarse en lenguajes modernos? y ahora solo procesa información en fragmentos puros y estructuras primitivas.

El sistema amenaza con borrar las bases de datos en 48 horas si no logramos “hablar su idioma” y enviarle la secuencia de apagado correcta.

Haz sido seleccionados como la Unidad de Ingeniería Inversa. La misión no es hackear el sistema, sino construir traductores para entender las fases de pensamiento del Arquitecto. Para lograrlo, se debe superar 4 fases críticas. ¿Listos para descifrar la máquina?

FASE 1: El Filtro de Ruido

El Arquitecto está enviando ráfagas de texto llenas de estática electromagnética. Antes de poder entender el mensaje, necesitamos limpiar la señal y separar los componentes útiles.

El Reto: Escribe una función que reciba una cadena de texto corrupta y extraiga únicamente los “Tokens” válidos.

  • Un token válido es: una palabra (solo letras), un número (solo dígitos), o un operador básico (+, -, =, ;).
  • Ignora cualquier otro símbolo basura (como @, #, ?, &).

Ejemplo de Entrada: "var123 @# = % 45 &+;?" Salida Esperada: ["var", "123", "=", "45", "+", ";"]

FASE 2: La Bóveda de Contención

Hemos limpiado la señal, pero los comandos del Arquitecto vienen encapsulados en múltiples capas de seguridad mediante llaves, corchetes y paréntesis. Si un comando no está perfectamente balanceado, la bóveda de memoria colapsará.

El Reto: Desarrolla un algoritmo que determine si una secuencia de aperturas y cierres es estructuralmente válida.

Ejemplos de Entrada y Salida:

  • "{ [ ( ) ] }" ➔ VÁLIDO (Acceso concedido)
  • "{ [ ( ] ) }" ➔ INVÁLIDO (Alarma activada – el corchete cierra antes que el paréntesis)
  • " ( ( ) " ➔ INVÁLIDO (Falta cerrar un paréntesis)

FASE 3: El Registro de Memorias

Para engañar al sistema, necesitamos llevar un registro exacto de los valores que el Arquitecto asigna a sus sectores de memoria. El sistema actualiza constantemente estas “variables” y a veces asigna el valor de una variable a otra.

El Reto: Crea un programa que lea una lista de asignaciones secuenciales y determine el valor final de todas las variables.

Ejemplo de Entrada:

  1. X = 10
  2. Y = 5
  3. Z = X
  4. X = 20

Salida Esperada (Estado final de la memoria): { X: 20, Y: 5, Z: 10 } (Nota que Z guardó el valor que tenía X en ese momento, no se actualiza a 20).

FASE 4: El Núcleo de Ejecución

Hemos llegado al núcleo. Para enviar la secuencia de apagado, debemos resolver la ecuación final del Arquitecto. Sin embargo, él no usa matemáticas normales, procesa las operaciones en forma de árbol (o notación polaca inversa).

El Reto: Escribe una función que resuelva una ecuación dada en Notación Postfija (donde los operadores van después de los números).

Ejemplo de Entrada: ["5", "3", "+", "2", "*"] (Esto equivale a (5 + 3) * 2)

Salida Esperada: 16

ENTREGABLES

Deberán entregar un repositorio (o archivo con su código) en el lenguaje de su preferencia (C, Java, Python, C++, etc.) resolviendo al menos 3 de las 4 fases.

¡El tiempo corre, Unidad! El IUDY cuenta con ustedes.

Leave a Reply

Your email address will not be published. Required fields are marked *