Passe-temps – Épreuve régionale 2008

Niveau 7

ENONCE

Le passe-temps favoris de Cimone est de jouer au jeu suivant. Le jeu consiste en une grille de N*N cases. Le but est de colorier certaines cases de façon à satisfaire les contraintes du jeu. Tout d'abord, certaines cases de la grille sont interdites. La deuxième contrainte est que pour chaque colonne et pour chaque ligne de la grille, le nombre de cases devant être coloriées est fixé. C'est-à-dire que l'on vous donne en entrée N entiers l[i] et N entiers c[i], et que les cases doivent être marquées de telle sorte qu'il y ait l[i] cases coloriées sur la i-ème ligne, et c[i] cases coloriées sur la i-ème colonne..

Ecrivez un programme qui dit si oui ou non il est possible de colorier certaines cases de la grille N*N de telle sorte à satisfaire les contraintes du jeu.

ENTREE

  • sur la première ligne, un entier N (1 \<= N \<= 50), indiquant les dimensions de la grille.

  • sur la deuxième ligne, N entiers, les l[i] (compris entre 0 et N), indiquant la contrainte de marquage des cases sur chaque ligne de la grille.

  • sur la troisième ligne, N entiers, les c[i] (compris entre 0 et N), indiquant la contrainte de marquage des cases sur chaque colonne de la grille.

  • sur les N lignes suivantes, N caractères contigus représentant la grille. Le caractère '0' (zéro) indique une case libre, alors que le caractère 'X' représente une case interdite (il est interdit de la colorier).

SORTIE

un entier, 1 s'il est possible de colorier les cases de façon à satisfaire les contraintes du jeu, et 0 sinon.

Contraintes d'exécution

Utilisation mémoire maximum
32000 kilo-octets
Temps d'exécution maximum
4000 millisecondes

Exemples d'entrée/sortie

Exemple d'entrée
3
2 2 1
3 1 1
000
0X0
000
Exemple de sortie
1
Exemple d'entrée
3
2 2 1
3 2 0
000
0X0
000
Exemple de sortie
0