Prihlásenie Registrácia  

O - Obrázok

Časový limit: 5s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Preskenované obrázky vyzerajú kostrbato. Študent informatiky chcel tomu pomôcť a naštudoval si oblasť matematickej morfológie čierno-bieleho obrazu. Základné operácie sú definované nasledovne:

Poznámka: pre ilustráciu znak '.' reprezentuje čiernu farbu a 'x' reprezentuje bielu farbu.

Dilatácia - narastanie tvaru objektu po obvode o 1 pixel (každý biely pixel obrazu sa zmení na tvar krížika):

.....    .....
.....    ..x..
..x.. -> .xxx.
.....    ..x..
.....    .....

Erózia - zmrštenie tvaru objektu po obvode o 1 pixel (každý biely krížik na obraze sa zmení na biely pixel):

.....    .....
..x..    .....
.xxx. -> ..x..
..x..    .....
.....    .....

Jeden spôsob vyhladenia obrazu je použitie operácie uzavretie. Uzavretie je kombinovaná operácia zložená z dilatácie a následnej erózie.

Úloha

Implementujte program, ktorý vyhladí čiernobiely obrázok zapísaný uvedenými znakmi pomocou operácie uzavretia. Predpokladajte, že mimo rozmerov obrazu sa nachádzajú čierne pixely. Kreslenie mimo určenú plochu je zakázané.

Vstup

Prvý riadok obsahuje rozmery obrázku: počet riadkov R (1 ≤ R ≤ 1 000) a počet stĺpcov S (1 ≤ S ≤ 1 000).

Nasleduje R riadkov po S znakoch popisujúcich obrázok - '.' reprezentuje čiernu farbu a 'x' reprezentuje bielu farbu.

Výstup

Výstupom programu je vyhladený vstupný obrázok v rovakom formáte ako vstup.

Príklad

Vstup:

5 5
.....
.x.x.
.x.x.
.xxx.
.....

Výstup:

.....
.x.x.
.xxx.
.xxx.
.....