Poza


Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 64M

Problem type

Un fotograf pasionat doreşte să-şi păstreze în format electronic pozele din colecţia personală. Pentru aceasta el scanează fotografiile, le prelucrează şi le salvează în format electronic.
Printre numeroasele sale fotografii a găsit o poză veche, de familie, care a fost deteriorată datorită trecerii timpului, pe ea putându-se observa numeroase pete de forme şi dimensiuni diferite.
Fotograful îşi propune să scoată din imagine o parte dintre aceste pete, cele mai vizibile, prelucrându-le la nivel de pixel şi colorându-le cu aceeaşi culoare ca a fondului pe care au fost identificate.
O „pată vizibilă” este o formaţiune de 3 pixeli de aceeaşi culoare, învecinaţi pe una din direcţiile N, E, S, V, dar nu toţi situaţi pe orizontală sau pe verticală. „Pata vizibilă” poate fi identificată în fotografie deoarece ea are altă culoare decât cea a fondului, fiind înconjurată de jur împrejur pe cele 4 direcţii de pixeli coloraţi la fel. Pe marginea pozei nu pot fi identificate pete, deoarece nu se poate decide dacă nu cumva sunt părţi ale altor obiecte ce nu au fost surprinse în întregime în poză.

Cerinţă

Fiind dată o poză, număraţi câte „pete vizibile” are şi scoateţi-le pe toate, colorându-le cu aceeaşi culoare ca a fondului pe care au fost identificate.

Date de intrare

Pe ecran se găsesc:

  • pe prima linie m şi n reprezentând dimensiunile pozei,
  • pe următoarele m linii, câte n numere despărţite prin câte un spaţiu; fiecare număr reprezintă codificarea culorii unui pixel

Date de ieșire

Pe prima linie se va afișa numărul petelor, iar pe următoarele m linii, câte n numere despărţite prin câte un spaţiu, fiecare număr reprezentând codificarea culorii unui pixel din poza prelucrată (după ce au fost scoase „ petele vizibile”).

Restricţii şi precizări

  • 4 \le m \le 200
  • 4 \le n \le 200
  • culoarea unui pixel este un număr întreg din intervalul [1,16].
  • dacă poza nu are „pete vizibile”, se va afişa doar 0 (zero)
  • poza nu conţine pete lipite (două poze sunt lipite dacă au pixeli vecini pe una din cele 4 direcţii)

Exemplu

Date de intrare
8 6
1 6 6 4 5 6
6 2 2 6 7 1
6 6 2 6 8 1 
1 2 6 2 5 1
4 2 9 4 2 2
3 4 4 3 4 2
3 4 3 3 4 2
1 2 4 4 2 9
Date de ieșire
2 
1 6 6 4 5 6
6 6 6 6 7 1
6 6 6 6 8 1
1 2 6 2 5 1 
4 2 9 4 2 2
3 4 4 4 4 2
3 4 4 4 4 2
1 2 4 4 2 9

Comments

There are no comments at the moment.