Polish version    English version  
  Historia OI -> VI OI 1998/1999 -> Zadania


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
 Historia OI
XVII OI 2009/2010
XVI OI 2008/2009
XV OI 2007/2008
XIV OI 2006/2007
XIII OI 2005/2006
XII OI 2004/2005
XI OI 2003/2004
X OI 2002/2003
IX OI 2001/2002
VIII OI 2000/2001
VII OI 1999/2000
VI OI 1998/1999
Wyniki III etapu
Wyniki II etapu
Wyniki I etapu
Zadania
Regulamin
Zasady organizacji
Wskazówki
Terminarz
Statystyki
V OI 1997/1998
IV OI 1996/1997
III OI 1995/1996
II OI 1994/1995
I OI 1993/1994
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
VI Olimpiada Informatyczna 1998/99

Zadanie: BIT
Autor: Marcin Sawicki
Bitmapa

Etap II, dzień drugi 11 lutego 1999
Plik źródłowy: BIT.??? (np. pas, c, cpp)
Plik wykonywalny: BIT.exe
Plik wejściowy: BIT.in
Plik wyjściowy: BIT.out

Dana jest prostokątna bitmapa o rozmiarach n*m. Każdy piksel bitmapy jest albo biały, albo czarny, przy czym co najmniej jeden jest biały. Piksel w i-tym wierszu i j-tej kolumnie bitmapy nazywamy pikselem (i,j). Odległość dwóch pikseli p1=(i1,j1) oraz p2=(i2,j2) określamy jako:

d(p1,p2)=|i1-i2|+|j1-j2|.

Zadanie

Napisz program, który:

  • wczytuje z pliku tekstowego bit.in opis bitmapy,
  • dla każdego piksela oblicza odległość do najbliższego piksela białego,
  • zapisuje wyniki w pliku tekstowym bit.out.

Wejście

W pierwszym wierszu pliku tekstowego bit.in znajduje się para liczb całkowitych n,m oddzielonych pojedynczym odstępem, 1<=n <=182, 1<=m<=182. W każdym z kolejnych n wierszy pliku bit.in zapisano dokładnie jedno słowo zero-jedynkowe o długości m - opis jednego wiersza bitmapy. Na pozycji j w wierszu (i+1), 1 <= i <= n, 1 <= j <= m, znajduje się '1' wtedy i tylko wtedy, gdy piksel (i,j) jest biały.

Wyjście

W i-tym wierszu pliku wyjściowego bit.out, 1<=i<=n, należy wypisać m liczb całkowitych f(i,1),...,f(i,m) pooddzielanych pojedynczymi odstępami i takich, że f(i,j) jest odległością piksela (i,j) od najbliższego piksela białego.

Przykład

Dla pliku wejściowego bit.in:

3 4
0001
0011
0110

poprawną odpowiedzią jest plik tekstowy bit.out:

3 2 1 0
2 1 0 0
1 0 0 1

Na stronie: http://www.mimuw.edu.pl/~msawicki/stereo.html dostępny jest applet Stereogram, który był pierwowzorem tego zadania.




Wersja do druku