Laboratorio 6: "Paint Me and Reverse Nonogram"

posted Mar 1, 2013, 10:14 AM by Camilo Rocha   [ updated Mar 6, 2013, 8:25 PM ]
El objetivo de este laboratorio es implementar en el lenguaje de programación Python 3 una solución a dos problemas de maratón de programación. Para ello, el estudiante deberá modificar unas plantillas dadas que implementan la entrada de los problemas en cada uno de sus formatos, y entregar una solución para cada uno de los problemas asignados.

Siguiendo la plantilla, identifique:
  1. La función main(); esta función se encarga de leer la entrada del problema y procesarla; para cada instancia del problema llama la función init() con los parámetros dados
  2. La función solve(...); esta función se invoca para cada instancia del problema definida por los casos de prueba y sus parámetros dependen de cada problema. Inicialmente esta función está vacia.
Una vez familiarizados con el código de la plantilla :
  1. Implemente la función solve(...) con los parámetros dados en cada una de las plantillas, para cada uno de los siguientes problemas:
    • E - Paint Me
    • G - Reverse Nonogram
  2. Pruebe que su solución funciona con los datos de prueba suministrados en el enunciado.
El laboratorio es individual y la instrucciones para la entrega son las siguientes:
  1. Para cada problema se ha suministrado un archivo de pruebas (con extensión .in)
  2. Para cada solución (es decir, para paintme.py y nonogram.py) genere un archivo con las respuestas a los casos de prueba. Por ejemplo, para el problema E - Paint Me, ejecute el siguiente comando suponiendo que la solución paintme.py y los casos de prueba paintme.in están en el mismo directorio:
    • (python3 paintme.py < paintme.in) > paintme.out
  3. Calcule la suma md5 para cada uno de los dos archivos .out generados con las instrucciones anteriores. Por ejemplo, para el problema E - Paint Me, ejecute el siguiente comando:
    • md5sum paintme.out
Ejecutar el último comando, genera una número hexagesimal de 32 dígitos que corresponde a la suma md5 de cada una de las soluciones.

Cada estudiante debe entregar:
  • El código impreso de las dos soluciones
    • El encabezado del archivo debe indicar, usando comentarios de Python,
      • Su nombre en la primera línea
      • Su código de estudiante en la segunda línea
      • La suma md5 de los archivos con las respuestas generadas por las soluciones
ċ
nonogram_plantilla.py
(0k)
Camilo Rocha,
Mar 1, 2013, 10:14 AM
ċ
paintme.in
(2k)
Camilo Rocha,
Mar 6, 2013, 8:09 PM
ċ
paintme_plantilla.py
(0k)
Camilo Rocha,
Mar 1, 2013, 10:14 AM
Ċ
Camilo Rocha,
Mar 1, 2013, 10:14 AM
ċ
reversenonogram.in
(116k)
Camilo Rocha,
Mar 6, 2013, 8:09 PM