Nonograma

El Nonograma és un puzzle de lògica en que les cel·les d’una graella s’han d’omplir o deixar en blanc tenint compte els nombres que hi ha al costat de la figura per tal de mostrar un dibuix amagat.

Tens un tauler de nonograma de nn files i mm columnes. Cada fila i cada columna té unes pistes (una seqüència de nombres) que indiquen les longituds dels blocs consecutius de cel·les plenes (X) que hi han d’aparèixer, en el mateix ordre i separats, com a mínim, per una cel·la buida (.).

Has de fer un programa que simuli una partida amb una interfície textual:

Les ordres possibles són:

A f c

Marca la cel·la (f,c)(f,c) com a plena (X). Si ja era X, no canvia res.

B f1 c1 f2 c2

Marca com a X totes les cel·les del rectangle delimitat per (f1,c1)(f1,c1) (cantonada superior esquerra) i (f2,c2)(f2,c2) (cantonada inferior dreta).

E f c

Deixa la cel·la (f,c)(f,c) buida (.). Si ja era ., no canvia res.

F f1 c1 f2 c2

Deixa buides (.) totes les cel·les del rectangle delimitat per (f1,c1)(f1,c1) i (f2,c2)(f2,c2).

R

Reinicia el tauler a l’estat inicial (tot .) i posa el comptador de moviments a 00.

S

Mostra el tauler en el format especificat a la secció de sortida.

Z

Finalitza la partida.

Moviments

Només compten com a moviments les ordres A, B, E i F. L’ordre R reinicia el comptador a 00. Les ordres S i Z no compten.

Condició de victòria

El tauler és correcte si, per a cada fila i cada columna, la seqüència de longituds dels blocs consecutius de X coincideix exactament amb la seva pista. Si una pista té 00 blocs, vol dir que aquella fila/columna no pot contenir cap X.

Quan s’assoleix la victòria després d’una ordre A, B, E o F, s’ha de mostrar el tauler (encara que no s’hagi demanat amb S), escriure el missatge de victòria i el nombre de moviments, i acabar.

Entrada

L’entrada té el format següent:

Nota: Pots suposar que totes les ordres són correctes i que els índexs de files i columnes que apareixen a les ordres són vàlids (les files i columnes es numeren des de 11).

Sortida

Primer s’ha d’escriure el tauler inicial i, després, cada vegada que es rebi una ordre S, s’ha de tornar a escriure el tauler.

El tauler s’imprimeix així:

Quan el joc acaba:

on X és el nombre total de moviments comptats segons les regles anteriors.

Informació del problema

Autoria: Bernardino Casas

Generació: 2026-01-25T13:03:30.768Z

© Jutge.org, 2006–2026.
https://jutge.org