Flamands migrateurs – Épreuve régionale 2019

Niveau 2

Énoncé

Haruhi s’est découverte une passion pour l’ornithologie. Les flamands roses sont bien connus pour leur formation de vol en V caractéristique. Dans les dessins qui vont suivre, un 1 indique un oiseau, et un 0 un espace entre les oiseaux.

Haruhi souhaite communiquer à ses collègues les motifs qu’elle observe. Néanmoins, dupliquer tous ces croquis serait trop lourd, elle décide donc d’en distribuer une version compressée.

Pour cela, elle utilise l’algorithme du codage par plages. À chaque ligne, si elle rencontre un groupe de $n$ occurrences consécutives de 0, elle remplace le groupe entier par son codage n ; pareillement pour 1, avec la convention que chaque ligne de sortie débute par le codage d’un 0. Elle sépare les groupes par une espace.

En encodant quelques une de ces images, Haruhi en apprendra certainement beaucoup sur le fabuleux vol des flamands roses.

Entrée

  • Sur la première ligne, un entier : n, le nombre de lignes.
  • Sur la ligne suivante, un entier : m, le nombre de colonnes.
  • Sur les lignes suivantes, une liste de n éléments : formation, la formation de vol des flamands roses.
    • Une ligne par élément de la liste : une liste de m entiers séparés par des espaces. séparées par une espace.

Sortie

Sur la ligne $i$, pour $1 \leq i \leq n$, afficher l’encodage de la ligne $i$ de la formation d’entrée.

Contraintes d'exécution

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

Exemples d'entrée/sortie

Exemple d'entrée
5
9
1 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 1 0 0
0 0 0 1 0 1 0 0 0
0 0 0 0 1 0 0 0 0
Exemple de sortie
0 1 7 1
1 1 5 1 1
2 1 3 1 2
3 1 1 1 3
4 1 4
Exemple d'entrée
9
13
0 0 0 0 1 0 0 0 0 1 1 1 0
0 0 0 1 1 0 0 0 1 0 0 0 1
0 0 1 0 1 0 0 0 0 0 0 0 1
0 1 0 0 1 0 0 0 0 0 0 0 1
1 0 0 0 1 0 0 0 0 0 0 1 0
1 1 1 1 1 1 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0 0 1 0 0 0
0 0 0 0 1 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 1 1 1 1 1
Exemple de sortie
4 1 4 3 1
3 2 3 1 3 1
2 1 1 1 7 1
1 1 2 1 7 1
0 1 3 1 6 1 1
0 6 4 1 2
4 1 4 1 3
4 1 3 1 4
4 1 3 5