Polish version    English version  
  Historia OI -> VIII OI 2000/2001 -> 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
Wyniki III etapu
Wyniki II etapu
Wyniki I etapu
Zadania
Regulamin
Zasady organizacji
Wskazówki
Terminarz
Statystyki
VII OI 1999/2000
VI OI 1998/1999
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
VIII Olimpiada Informatyczna 2000/2001

Zadanie: MAP
Autor: Tomasz Śmigielski
Mapa gęstości

Zawody I stopnia  
Plik źródłowy: MAP.??? (np. pas, c, cpp)
Plik wykonywalny: MAP.exe
Plik wejściowy: MAP.in
Plik wyjściowy: MAP.out

Dane są:

  • liczby naturalne n > r >= 0,
  • F - tabelka n x n wypełniona liczbami ze zbioru {0,1}; kolumny i wiersze tabelki są ponumerowane od 1 do n; liczbę znajdującą się w i-tej kolumnie i j-tym wierszu tabelki oznaczamy przez F[i, j].

Jeśli [i, j] i [i', j'] są dwoma miejscami w tabelce F, to odległością między nimi nazywamy liczbę max(|i - i'|, |j - j'|).

Należy obliczyć tabelkę W, n x n (do elementów tej tabelki odwołujemy się tak samo, jak do elementów tabelki F) taką, że W[i, j] jest sumą wszystkich liczb z tabelki F leżących w odległości co najwyżej r od [i, j].

Zadanie

Napisz program, który:

  • wczyta z pliku tekstowego MAP.IN liczby n, r oraz tabelkę F,
  • obliczy tabelkę W,
  • zapisze ją do pliku tekstowego MAP.OUT.

Wejście

W pierwszym wierszu pliku tekstowego MAP.IN znajdują się dwie dodatnie liczby całkowite oddzielone pojedynczym odstępem: n i r, gdzie 0 <= r < n <= 250. W kolejnych n wierszach znajduje się opis tabelki F. Każdy z tych wierszy zawiera n liczb ze zbioru {0,1}, pooddzielanych pojedynczymi odstępami, i-ta liczba zapisana w j+1-szym wierszu to F[i, j].

Wyjście

Plik tekstowy MAP.OUT powinien zawierać dokładnie n wierszy, w j-tym wierszu powinny być zapisane kolejno wartości W[1, j]...W[n, j] pooddzielane pojedynczymi odstępami.

Przykład

Dla pliku wejściowego MAP.IN:

5 1
1 0 0 0 1
1 1 1 0 0 
1 0 0 0 0 
0 0 0 1 1
0 1 0 0 0

poprawną odpowiedzią jest plik wyjściowy MAP.OUT:

3 4 2 2 1
4 5 2 2 1
3 4 3 3 2
2 2 2 2 2
1 1 2 2 2



Wersja do druku