Un nonograma es un rompecabezas lógico bidimensional que se parece a esto (capturas de pantalla del juego Pixelo , mi juego de nonogramas favorito):

El objetivo del juego es descubrir qué imagen codifican esos números. Las reglas son simples: un número en una columna o fila significa que en algún lugar de esa columna o fila, se rellenan muchos cuadros en una fila. Por ejemplo, la fila inferior de la imagen de arriba no debe tener cuadros rellenados, mientras que el de arriba debe tener todos sus cuadros llenos. La tercera fila desde abajo tiene 8 cajas llenas, y todas estarán en una fila.
Dos o más números para la misma columna o fila significan que hay múltiples "tiradas" de cajas llenas, con al menos un espacio entre ellas, con esas longitudes. El orden se conserva. Por ejemplo, hay tres cuadros rellenados en la columna de la derecha de la imagen de arriba, al menos un espacio debajo de ellos, y luego un cuadro más rellenado.
Aquí está el mismo rompecabezas, casi completado:

(Las X no son importantes, son solo una pista que el jugador deja para sí mismo para decir "Esta casilla definitivamente no está llena". Piensa en banderas en Buscaminas. No tienen reglas de significado).
Esperemos que pueda ver que, por ejemplo, las columnas del medio con sugerencias que dicen "2 2" tienen dos tramos de 2 longitudes de cajas rellenas.
Su misión, si elige aceptarla, es escribir un programa o función que cree un rompecabezas como este. Se le da el tamaño del tablero como un entero entero (5 <= n <= 50) en stdin o como argumento (no hay ninguna razón por la cual un rompecabezas de nonograma tiene que ser cuadrado, pero para este desafío lo será). Después de eso, se le dará una serie de 1s y 0s que representan cuadrados llenos y sin llenar en la imagen, respectivamente. Los primeros n de ellos son la fila superior, luego la siguiente fila, etc. Volverá o imprimirá para formar un tablero de 2 * 1 celdas (porque se ven mejor, y le da espacio para pistas de 2 dígitos para una columna ), todos ellos vacíos, con sugerencias correspondientes a los datos de entrada.
Formato de salida

Muestra
Entrada:
./nonogram <<< '5 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0'
OR
n(5,[0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,1,0])
Imagen:

Salida:
1
2 1 2
3 2 1 2 3
+----------
3|
2 2|
1 1 1|
2 2|
3|
Entrada:
./nonogram <<< '15 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1'
Imagen:

Salida:
1 1
1 1 3 3 5 5 3 3 1
7 2 3 2 4 2 3 210 2 3 0 4 215
+------------------------------
2|
1|
1|
1|
1|
1 1|
3 3 1 1|
1 5 1 1|
3 5 3|
1 5 1|
1 3 1|
1 1 1 1 1|
1 1 1 1 1 1 1 1|
11 3|
11 3|
Aclaraciones
- Su salida no necesita ser un rompecabezas solucionable. No todos los nonogramas tienen solución, pero esa no es su preocupación. Simplemente envíe las sugerencias que corresponden a la entrada, ya sea que sean un buen rompecabezas o no.
- Se permite un programa que tome argumentos en la línea de comando. Esto se afirma más arriba, pero es posible tener una idea equivocada. Para eso están las aclaraciones.
0Es obligatorio imprimir una fila o columna que no haya rellenado los cuadros. No digo esto con palabras en ninguna parte, pero está en los datos de muestra.
5<=n<=50es la especificación, por lo que no puede haber ningún número de 3 dígitos
-de lo que debería?